Log4j - Gravar arq num diretório específico

13 respostas
cnunes

Olá amigos,

Estou testando o log4j.
Criei um arquivo log4j.properties no path da minha aplicação.
Está funcionado direitinho, consigo gravar o arquivo de log.
Só que o arquivo de log é gravado na pasta bin do tomcat (estou usando o tomcat do netbeans).
Eu queria gravar o arquivo de log numa pasta dentro da minha aplicação.
Minha dúvida é em relação a linha abaixo.

log4j.appender.fileAuditoria.File = meuLog.log

Como referenciar uma pasta da minha aplicação?

Segue abaixo o meu log4j.properties

log4j.logger.AUDITORIA_APLICACAO=INFO, fileAuditoria
log4j.appender.fileAuditoria = org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileAuditoria.File = meuLog.log
log4j.appender.fileAuditoria.DatePattern='.'yyyy-MM-dd
log4j.appender.fileAuditoria.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAuditoria.layout.ConversionPattern=%5p %d{dd MMM HH:mm:ss} [%t] %c - %m%n

Se alguém puder ajudar…

Agradeço desde já!

13 Respostas

gigicantador

Costumo usar:

# Set root logger level to DEBUG and its only appender to fileOut.
log4j.rootLogger=DEBUG, fileOut

#ordem: DEBUG - INFO - WARN - ERROR - FATAL

# fileOut is set to be a ConsoleAppender.
log4j.appender.fileOut=org.apache.log4j.ConsoleAppender

# fileOut uses PatternLayout.
log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
#log4j.appender.fileOut.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

#log4j.appender.fileOut.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.fileOut.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.fileOut.layout.ConversionPattern=%d %-5p - %m - [%c] %n

# Pattern to output the caller's file name and line number.
#log4j.appender.fileOut.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.fileOut=org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=D:/log/aplicacaoX/x_debug_.log
log4j.appender.fileOut.MaxFileSize=1000KB
# Keep one backup file
log4j.appender.fileOut.MaxBackupIndex=5
cnunes
gigicantador:
Costumo usar:
# Set root logger level to DEBUG and its only appender to fileOut.
log4j.rootLogger=DEBUG, fileOut

#ordem: DEBUG - INFO - WARN - ERROR - FATAL

# fileOut is set to be a ConsoleAppender.
log4j.appender.fileOut=org.apache.log4j.ConsoleAppender

# fileOut uses PatternLayout.
log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
#log4j.appender.fileOut.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

#log4j.appender.fileOut.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.fileOut.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.fileOut.layout.ConversionPattern=%d %-5p - %m - [%c] %n

# Pattern to output the caller's file name and line number.
#log4j.appender.fileOut.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.fileOut=org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=D:/log/aplicacaoX/x_debug_.log
log4j.appender.fileOut.MaxFileSize=1000KB
# Keep one backup file
log4j.appender.fileOut.MaxBackupIndex=5

Olá, gigicantador ,

Da forma que vc mencionou funciona.
log4j.appender.fileOut.File=D:/log/aplicacaoX/x_debug_.log
Mas eu gostaria que o caminho para a criação do arquivo não fosse absoluto. Preciso apontar esse caminho de forma dinâmica. A minha grande dificuldade está em apontar a pasta raíz da minha apliação através do meu arquivo log4j.properties.

Alguém tem alguma idéia de como fazer isso?

Muito obrigada!

cnunes
cnunes:
gigicantador:
Costumo usar:
# Set root logger level to DEBUG and its only appender to fileOut.
log4j.rootLogger=DEBUG, fileOut

#ordem: DEBUG - INFO - WARN - ERROR - FATAL

# fileOut is set to be a ConsoleAppender.
log4j.appender.fileOut=org.apache.log4j.ConsoleAppender

# fileOut uses PatternLayout.
log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
#log4j.appender.fileOut.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

#log4j.appender.fileOut.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.fileOut.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.fileOut.layout.ConversionPattern=%d %-5p - %m - [%c] %n

# Pattern to output the caller's file name and line number.
#log4j.appender.fileOut.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.fileOut=org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=D:/log/aplicacaoX/x_debug_.log
log4j.appender.fileOut.MaxFileSize=1000KB
# Keep one backup file
log4j.appender.fileOut.MaxBackupIndex=5

Olá, gigicantador ,

Da forma que vc mencionou funciona.
log4j.appender.fileOut.File=D:/log/aplicacaoX/x_debug_.log
Mas eu gostaria que o caminho para a criação do arquivo não fosse absoluto. Preciso apontar esse caminho de forma dinâmica. A minha grande dificuldade está em apontar a pasta raíz da minha apliação através do meu arquivo log4j.properties.

Alguém tem alguma idéia de como fazer isso?

Muito obrigada!


Pessoal,

Alguém tem mais alguma sugestão???

renatocustodio

Não tenho certeza, mas não tem como passar isso por dentro da aplicação em vez de cetar pelo arquivo properties? Se sim, fica fácil via programação vc pegar o caminho da sua aplicação…

fabiofalci
log4j.appender.fileOut.File=log/fis.log

Assim fica relativo ao diretorio de execução

cnunes

fabiofalci:
cnunes:

Da forma que vc mencionou funciona.

log4j.appender.fileOut.File=D:/log/aplicacaoX/x_debug_.log

Mas eu gostaria que o caminho para a criação do arquivo não fosse absoluto.
Preciso apontar esse caminho de forma dinâmica.
A minha grande dificuldade está em apontar a pasta raíz da minha apliação através do meu arquivo log4j.properties.

Alguém tem alguma idéia de como fazer isso?

Muito obrigada!

log4j.appender.fileOut.File=log/fis.log

Assim fica relativo ao diretorio de execução

Olá fabio falci,

Testei a sua sugestão.
Mas desta forma ele cria uma pasta log com o arquivo fis.log no diretório raíz da minha máquina.

Vou verificar a sugestão anterior.

Obrigada!

cnunes

Olá Renato,

Não faço a menor idéia de como passar via programação.
A princípio, deixei o caminho absoluto, mas vou continuar pesquisando.

Se alguém tiver alguma sugestão, será muito bem vinda! :slight_smile:

Muito obrigada!

fabiofalci

cnunes:

Olá fabio falci,

Testei a sua sugestão.
Mas desta forma ele cria uma pasta log com o arquivo fis.log no diretório raíz da minha máquina.

Vou verificar a sugestão anterior.

Obrigada!

Sim, entao o teu diretório de execução é a raiz da sua maquina.
Tenta ir num diretório diferente, por exemplo
/tmp/
e execute a sua aplicação de lá, vai ser criado então
/tmp/log/fis.log

cnunes

fabiofalci:
cnunes:

Olá fabio falci,

Testei a sua sugestão.
Mas desta forma ele cria uma pasta log com o arquivo fis.log no diretório raíz da minha máquina.

Vou verificar a sugestão anterior.

Obrigada!

Sim, entao o teu diretório de execução é a raiz da sua maquina.
Tenta ir num diretório diferente, por exemplo
/tmp/
e execute a sua aplicação de lá, vai ser criado então
/tmp/log/fis.log

Bom dia fabio,

Desculpa, mas eu não entendi o que vc disse.

" Tenta ir num diretório diferente, por exemplo
/tmp/
e execute a sua aplicação de lá, "

Ou melhor, como ir para um diretório diferente?
Desculpa, mas é que não tenho muita experiência…

fabiofalci

Como tu está executando a aplicação? linha de comando? icone?

Se linha de comando, tente assim:

> cd /tmp
> java -jar ....

Ou seja teu diretório de execução é o /tmp/ entao o dir de log vai estar la.

Agora se for algum ícone, do windows por exemplo, tem q ir nas propriedades dele e
o diretório de execução é o ‘Iniciar em:’ (windows em portugues).

cnunes

fabiofalci:
cnunes:

Bom dia fabio,

Desculpa, mas eu não entendi o que vc disse.

" Tenta ir num diretório diferente, por exemplo
/tmp/
e execute a sua aplicação de lá, "

Ou melhor, como ir para um diretório diferente?
Desculpa, mas é que não tenho muita experiência…

Como tu está executando a aplicação? linha de comando? icone?

Se linha de comando, tente assim:

> cd /tmp
> java -jar ....

Ou seja teu diretório de execução é o /tmp/ entao o dir de log vai estar la.

Agora se for algum ícone, do windows por exemplo, tem q ir nas propriedades dele e
o diretório de execução é o ‘Iniciar em:’ (windows em portugues).

Olá fabio,

Desculpa, esqueci de falar.
A minha aplicação é web.
Como a minha aplicação vai rodar num servidor,
eu tenho que apontar o caminho para a pasta que armazenará os log.
Como falei anteriormente, preciso que o caminho seja dinâmico.
Pois se o caminho da pasta ficar estático, e por algum acaso eu tiver que mudar a mnha aplicação de servidor,
vou ter que modificar o caminho na mão.

Muito obrigada pela sua ajuda…

R

Estou com o mesmo problema, alguém tem uma solução ?

kadu.m.lino
log4j.appender.fileOut.File=${user.home}/errors.log

acho que resolve o problema de vcs!

Criado 9 de outubro de 2008
Ultima resposta 27 de nov. de 2012
Respostas 13
Participantes 6