Eu uso o log4net o tempo todo, mas uma coisa que eu nunca descobri é como saber o que está acontecendo por dentro. Por exemplo, eu tenho um aplicativo de console e um aplicativo de banco de dados no meu projeto. Fiz algumas alterações no banco de dados e no código, e agora o appender do banco de dados não funciona mais. Vou descobrir por que, eventualmente, mas ajudaria muito se eu pudesse ver o que está acontecendo dentro do log4net.
O log4net gera algum tipo de saída que eu possa visualizar para tentar determinar a origem do meu problema?
C:\tmp\log4net.txt
paraC:\log4net.txt
, então ele pode gerar um arquivo de texto.<configSections></configSections>
é a primeira entrada em<configuration>
. Caso contrário, você acaba com um erro.traceOutputOptions="TimeStamp"
etraceOutputOptions="DateTime"
naadd
tag, mas isso não altera nada no conteúdo do arquivo de log. Alguém sabe como configurar o log4net para mostrar o tempo de cada linha / entrada no arquivo de log de rastreamento?Se você estiver usando um arquivo de configuração log4net, também poderá ativar a depuração alterando o nó superior para:
Isso funcionará assim que a configuração for recarregada e assumindo que o ouvinte de rastreamento esteja configurado corretamente.
fonte
Além da resposta acima, você pode usar esta linha para ver o log em tempo real, em vez da saída c: \ tmp \ log4net.txt.
Por exemplo, em um aplicativo de console, você pode adicionar isso e assistir à saída em tempo real. É bom depurar o log4net em um pequeno equipamento de teste para ver o que está acontecendo com o aplicativo que você está testando.
fonte
Verifique se o aplicativo raiz onde seu ponto de entrada está registra algo no log4net. Dê um destes:
Com o 2.0.8, eu tive uma situação interessante. Criei um projeto de biblioteca e um projeto de teste exe que demonstraria suas capacidades. O projeto da biblioteca foi configurado para usar o Log4net como era o projeto exe. O projeto exe usou o atributo assemblyinfo para registrar a configuração, mas eu não estava obtendo nenhuma saída de log no console ou no arquivo de log. Quando ativei o log de depuração interna do log4net, recebi algumas mensagens internas gravadas no console, mas ainda assim nenhum dos meus logs normais. Nenhum erro estava sendo relatado. Tudo começou a funcionar quando adicionei o código acima ao meu programa. Caso contrário, o Log4net foi configurado corretamente.
fonte
Se o log interno não fornecer informações suficientes, é muito fácil criar e depurar o código fonte . Se você não quiser misturar isso com o seu projeto de desenvolvimento, adicione um aplicativo de console simples que apenas registre uma mensagem, copie o seu projeto
log4net.config
para esse aplicativo e depure a classe em questão.fonte
No log4net 2.0.8, parece não ser possível fazer o log com o log4net em uma DLL separada. Se eu tentei isso, os resultados são muito estranhos: nenhum log é realizado. E a inicialização do log4net com a opção debug não mostra erros.
Como o K0D4 disse, você deve ter uma referência ao log4net no seu módulo principal e deve ligar uma vez no início do Programa e está tudo bem.
Na próxima versão do log4net, esse bug provavelmente será corrigido.
fonte