Bom dia,
Eu escrevi uma aplicação que usa o log4j e estou configurando usando um log4j.properties. O meu problema é que mesmo que eu não especifque que o log deve ser apresentado na saída padrão (gravando em um arquivo, por exemplo), a aplicação envia para saída padrão (além de também gravar no arquivo).
O meu log4j.properties é o seguinte:
log4j.rootLogger=DEBUG, fileAppender
log4j.appender.fileAppender=org.apache.log4j.FileAppender
log4j.appender.fileAppender.File=output.log
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%2d{dd/MM/yyyy HH:mm} %5p [%t] (%F:%L) - %m%n
log4j.appender.fileAppender.Append=false
log4j.logger.org.apache.log4j.PropertyConfigurator=INFO
log4j.logger.org.apache.log4j.config.PropertySetter=INFO
log4j.logger.org.apache.log4j.FileAppender=INFO
Alguém saberia me dizer o que está faltando para evitar que o log vá para a saída padrão?
Obrigado
Não entendi bem o problema…mas vai ai um exemplo:
[code]# Início - log4j.properties
log4j.rootLogger=INFO, LOG
log4j.appender.LOG=org.apache.log4j.RollingFileAppender
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG.layout.ConversionPattern=%d [%t] %p %c - %m%n
log4j.appender.LOG.File=c:/catalina.out
log4j.appender.LOG.MaxFileSize=10MB
log4j.appender.LOG.MaxBackupIndex=10
Fim[/code]
OK, eu acho que minha pergunta ficou meio confusa mesmo.
A questão é a seguinte: eu quero que a minha aplicação mande as mensagens de log somente para um arquivo. Nesse caso, eu escolhi um FileAppender porque não quer um log rotativo. Aparentemente a configuração que eu fiz está correta, porque ele grava no arquivo.
O que está me incomodando é que, além de gravar no arquivo, o log4j também está mandando as mensagens para o console (apesar de eu não ter configurado um ConsoleAppender). Eu não quero que sai no console, quero que grave apenas no arquivo.
Já fiz uma boa pesquisa por aí, mas não consegui descobrir o que poderia estar errado.
Não cheguei a testar mas por acaso não é por causa dessa linha?
log4j.logger.org.apache.log4j.FileAppender=INFO
Palpite
Paulo,
Obrigado pela resposta.
Eu já havia testado sem as 3 últimas linhas, mas por via das dúvidas tentei retirar apenas a última. O problema continua.
Mais alguma idéia?
Caros,
Agradeço a atenção do forum e acho que o mínimo que posso fazer para retribuir é colocar a solução do problema para quem vier procurar algum dia.
O problema não estava no arquivo de configuração. O fato é que eu segui um exemplo na internet que dizia ser necessário invocar o seguinte comando no programa:
BasicConfigurator.configure();
Mas o exemplo que eu vi não usava o arquivo de configuração. Eu achava que era nessa linha que o log4j era instruído a fazer as configurações básicas, inclusive procurar o arquivo de configuração. Mas parece que essa linha apenas deixa o log4j com as configurações padrões, o que significa ter pelo menos um ConsoleAppender.
Ao retirar essa linha, eu resolvi meu problema.
Obrigado.