Na minha experiência, o log4net geralmente engole quaisquer erros internos, simplesmente resultando em instruções de log que não produzem nenhum resultado.
O que você pode tentar é habilitar o log interno do log4net. Você pode fazer isso adicionando o seguinte ao seu
appSettings
seção:<add key="log4net.Internal.Debug" value="true" />
Isso define a propriedade
LogLog.InternalDebugging
para verdadeiro
. O log4net agora registrará na saída padrão e nos fluxos de erro e nos ouvintes de rastreamento configurados. Você pode usar a a seguir configuração para capturar todas as mensagens registradas no rastreamento:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
Todas as mensagens registradas pelo log4net internamente aparecerão em
TextWriterOutput.log
. Se você receber uma SecurityException
quando você adiciona o ouvinte de rastreamento à sua configuração, muito provavelmente a identidade do apppool não tem direitos suficientes para criar um arquivo no local especificado (no exemplo:c:\
). Tente outro local ou conceda direitos suficientes à identidade do apppool.