Olá pessoal, boa tarde.
Preciso da ajuda de vocês. Eu criei o arquivo log4j.properties na pasta raiz da minha aplicação web.
Eu estou tentando fazer ele criar um arquivo .log (seria ideal que fosse dentro de WEB-INF) mas nem em qualquer outro lugar eu consigo fazer ele criar esse arquivo.
Aqui está a configuração para quem quiser ver.
log4j.rootCategory=WARN,stdout
log4j.logger.frontend=WARN,stdout,fileOut
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm} [%t] %5p %c:%L - %m%n
log4j.appender.fileOut =org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=/frontend.log
log4j.appender.fileOut.MaxFileSize=500KB
log4j.appender.fileOut.MaxBackupIndex=1
log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout
log4j.appender.fileOut.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm} [%t] %5p %c:%L - %m%n
E aqui a minha chamada do log
Logger rootLogger = Logger.getLogger("frontend");
try {
rootLogger.warn("teste");
service.inicializarDados(this.session);
} catch (HibernateException e) {
rootLogger.fatal(e.getMessage(), e);
result.nothing();
}
Obrigado.
UP e Atualizando o status: consegui fazer funcionar. Mas só num método main.
No meu controller do VRaptor ele mostra na tela mas não grava nada no .log…
Alguém sabe o que pode ser?
Minhas configurações são:
log4j.rootLogger = WARN,consoleAppender,rollingFile
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm} [%t] %5p %c:%L - %m%n
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=frontend.log
log4j.appender.rollingFile.MaxFileSize=2MB
log4j.appender.rollingFile.MaxBackupIndex=2
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm} [%t] %5p %c:%L - %m%n
Código main que funciona:
import org.apache.log4j.Logger;
public class TesteLog {
public static void main(String[] args) {
Logger logger = Logger.getLogger("rollingFile");
logger.fatal("mensagem");
}
}
Código que só mostra na tela mas não grava no .log:
@Liberado
@Get("/login")
public void login() {
Logger logger = Logger.getLogger("rollingFile")
try {
service.inicializarDados(this.session);
} catch (HibernateException e) {
result.nothing();
}
logger.fatal("mensagemLogin");
}
Obrigado novamente.
Up novamente…
Passei todo esse tempo pesquisando sobre isso. Mas ainda não consegui entender por que não consigo gravar um .log quando chamo pela aplicação…