Pages

Showing posts with label log4net. Show all posts
Showing posts with label log4net. Show all posts

Wednesday, February 26, 2014

Ficheiros de configuração do Log4net por ambiente

Uma boa prática a seguir quando se desenvolvem aplicações é ter os ficheiros de configuração separados por ambiente. Por norma usa-se uma pasta config onde estão os ficheiros de configuração para cada secção do web/app.config por ambiente:

\config\appSettings.local.config
\config\appSettings.staging.config
\config\appSettings.release.config
\config\log4net.local.config
\config\log4net.staging.config
\config\log4net.release.config

Depois no web/app.config através do atributo configSource especifica-se o path para o ficheiro de configuração de cada secção. Desta forma é facil automatizar o processo de build/deploy para apenas alterar o path nos ficheiros web/app.config para a aplicação passar a usar as configurações do ambiente alvo.

O problema surge quando se verifica que o elemento não suporta o atributo configSource ...

No entanto é possivél dar a volta configurando a chave "log4net.Config" na secção appSettings. O log4net quando é inicializado vê se essa chave de configuração existe, e caso exista vai procurar o ficheiro de configuração na path especificada para carregar a sua secção de configuração.

<appSettings>
    ...
    <add key="log4net.Config" value="config/log4net.local.config" />
    ...
</appSettings>

Desta forma quando se corre o processo de build/deploy este altera o path para o ficheiro appSettings a usar e depois na chave "log4net.Config" especificamos o path para o ficheiro de configuração do log4net para esse ambiente.