Galera… to aqui agora quebrando a cabeça tentando configurar o log4j em uma app web que to fazendo… só que não ta rolando… alguem pode ajudar ???
configuerei o meu seguindo esse tuto:
http://www.k19.com.br/artigos/configurando-hibernate-com-mysql/
O meu problema é o seguinte… quando testo sem ser em uma app web funciona agora se eu testar na minha app que é web não funciona.
Opa,
Eu uso em meus projetos e é simples.
Pega o jar do Log4J e poe na WEB-INF/lib.
E tem também um arquivo chamado log4j.properties que vc pode por dentro da pasta src.
Esse exemplo da K19 tem o minimo necessario pra funcionar o Log4J.
log4j.rootCategory=DEBUG, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%r [%t] %-5p %c - %m%n
Você pode usar diferentes niveis de log, depende do que quer, e a saída pode ser também em um arquivo.
Para mais informações, a documentação - http://logging.apache.org/log4j/1.2/manual.html
Opa… consegui resolver …
primeiro fiz a uma classe padrão Singleton para garantir ter apenas uma instância do meu log.
package framework.logger;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.helpers.Loader;
public class Log {
private Log(){}
private static Logger logger = null;
public static Logger getInstance(){
try {
if (logger == null) {
// O grande detalhe que eu não estava conseguindo é esse trecho (Loader.gerResource("log4j.properties");)
//depois disso passou a funcionar que é uma maravilha.
PropertyConfigurator.configure(Loader.getResource("log4j.properties"));
logger = Logger.getLogger(Log.class);
}
} catch (Exception e) {
e.printStackTrace();
}
return logger;
}
}
e na minha app eu pego assim
Logger log = Log.getInstance();
log.debug("minha mensagem");
log4j.properties
obs.: para enviar o e-mail, é necessário ter no classpath o arquivo mail.jar
log4j.debug=true
log4j.rootLogger=debug,file,stdout,mail
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p (%d{HH:mm:ss,SSS}) - %m%n
log4j.appender.stdout.Threshold=INFO
log4j.appender.file=org.apache.log4j.RollingFileAppender
#setar o local onde será gerado o arquivo
log4j.appender.file.File=
log4j.appender.file.MaxFileSize=10240KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%5p [%t] (%d) - %m%n
#Colocar usuario e senha de autenticação, caso necessário...
log4j.appender.mail.SMTPUsername=
log4j.appender.mail.SMTPPassword=
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
#Para quem enviar o email, com o log de erro...
log4j.appender.mail.To=
log4j.appender.mail.From=
#o smtp
log4j.appender.mail.SMTPHost=smtp.gmail.com
log4j.appender.mail.Threshold=ERROR
log4j.appender.mail.BufferSize=1
log4j.appender.mail.Subject=Trata-se de um teste.
log4j.appender.mail.layout=org.apache.log4j.HTMLLayout
Espero ter ajudado, qualquer duvida estou à disposição.