[RESOLVIDO] Log4j web application

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.