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.
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.