Log4j относительный путь к файлу

Я хочу, чтобы мое веб-приложение регистрировалось в файлах с помощью этого пути: WebApp/журналы/

Я могу установить абсолютный путь в файле log4j.properties, но структура каталога производственной среды будет отличаться. Могу ли я это сделать?

Вот как я это делаю:

log4j.appender.f=org.apache.log4j.RollingFileAppender
log4j.appender.f.layout=org.apache.log4j.PatternLayout
log4j.appender.f.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.f.File=log.out
log4j.appender.f.MaxFileSize=100KB

Это печатает журналы в файл с именем log.log в моем каталоге eclipse (c://eclipse). Я использую Tomcat 6.

Ответы

Ответ 1

log4j способен расширять системные свойства, поэтому, если ваша производственная среда устанавливает свойство для каталога, в который вы хотите поместить файлы журнала, вы можете ссылаться на него из файла log4j.properties.

Например, мы развертываем webapps на Tomcat. Tomcat устанавливает системное свойство с именем catalina.base, которое указывает на базовый каталог Tomcat. Конфигурация log4j выглядит так:

 log4j.appender.f.File = ${catalina.base}/logs/myapp.log

В результате файл myapp.log будет сохранен в каталоге журналов в каталоге установки Tomcat.

Ответ 2

Лучше всего обеспечить:
log4j.appender.f.File =./myapp.log

. представляет текущую папку (обычно это корневая папка проекта). Это также работает на разных ОС. Если вы используете ${catalina.home}, вы не можете запускать веб-приложение через tomcat.

Этот пост помог мне решить проблему:
http://www.matjazcerkvenik.si/Site/Java::Log4j_Properties.html (обновленная ссылка http://www.matjazcerkvenik.si/developer/java-log4j.php)

Ура!

Ответ 3

log4j.appender.A1 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File = ${catalina.home}/logs/myapp.log
log4j.appender.A1.DatePattern = '-' yyyy-MM-dd'.log '

В этом примере ваш текущий файл журнала будет называться "myapp.log". В полночь (или когда первая запись в журнале происходит на следующий день) "myapp.log" будет переименован в "myapp-yyyy-mm-dd.log" (например,
" myapp-2010-12- 21.log "), и будет создан новый" myapp.log ".