Как использовать log4j, чтобы написать файл в моем каталоге проекта? - PullRequest
8 голосов
/ 12 мая 2011

У меня есть файл свойств log4j, который создает файл в моей папке tomcat> bin, но вместо этого он может записать файл журнала в корневой каталог моего проекта? WebApps> тест> _ __

Вот мое содержимое файла свойств log4j.

#define the console appender
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender

# now define the layout for the appender
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%t %-5p %c{3} - %m%n

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=/test/a.log
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.rollingFile.MaxBackupIndex=2
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n

# now map our console appender as a root logger, means all log messages will go to this appender
#for console printing
#log4j.rootLogger = DEBUG, consoleAppender   

#for file printing
log4j.rootLogger = DEBUG, rollingFile   

Ответы [ 2 ]

8 голосов
/ 12 мая 2011

Конфигурации log4j понимают "${catalina.home}", поэтому ...

 log4j.appender.rollingFile.File=${catalina.home}/webapps/test/a.log

Однако я не думаю, что стоит помещать журналы в дерево webapps, поскольку они подверженыбыть взорван, если ваше веб-приложение перераспределеножурналы приложений;например, "/ var / spool / ..." или "/ var / log / ...".

Размещение файлов журналов в стандартных местах означает, что кому-то другому (например, парню, который является резервным системным администратором, когда вы в отпуске), меньше места для проверки, заполняет ли файловая система старые файлы журналов.

8 голосов
/ 12 мая 2011

Попробуйте заменить это:

log4j.appender.rollingFile.File=/test/a.log

с этим:

log4j.appender.rollingFile.File=../webapps/test/a.log

Примечание (Стивен С) - «../» означает, что это решение зависит от того, делает ли используемый механизм запуска Tomcat $ CATALINA_HOME текущим каталогом перед JVM, в которой размещается Tomcat. Некоторые делают, а некоторые нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...