Impedir que logs saiam na saída padrão do log4j

5 respostas
takeuchi

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

5 Respostas

andersondamasio

Não entendi bem o problema...mas vai ai um exemplo:

# 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
takeuchi

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.

Paulo_Faulstich

Não cheguei a testar mas por acaso não é por causa dessa linha?

log4j.logger.org.apache.log4j.FileAppender=INFO

Palpite

takeuchi

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?

takeuchi

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.

Criado 6 de junho de 2008
Ultima resposta 9 de jun. de 2008
Respostas 5
Participantes 3