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 ".