Pages

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.


No comments:

Post a Comment