2012-06-06 5 views
21

Моя WAR использует файл log4j FileAppender, настроенный через файл log4j.properties в каталоге classes/ внутри WAR.Как указать журналы Tomcat в качестве файла журнала log4j

Я настроил мой log4j Appender как таковой:

# Set the root logger to DEBUG. 
log4j.rootLogger=DEBUG 

# MonitorLog - used to log messages in the Monitor.log file. 
log4j.appender.MonitorAppender=org.apache.log4j.FileAppender 
log4j.appender.MonitorAppender.File=MonitorLog.log 
log4j.appender.MonitorAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.MonitorAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n 

# Use the MonitorAppender to log all messages. 
log4j.logger.*=DEBUG,MonitorAppender 

С этой конфигурацией я пытаюсь добиться следующего:

  • все сообщения журнала DEBUG уровня и выше, нужно регистрироваться (так что все)
  • Я хочу, чтобы этот файл MonitorLog.log будет находиться под logs/ директории Tomcat в

Выполняет ли эта конфигурация эти элементы, а если нет, что нужно изменить?

ответ

45

Если вы знаете, эта война будет развернута только к коту, вы можете воспользоваться свойством системы catalina.base, который представляет корень вашего кота основной папки (есть также cataline.home, но они часто совпадают, если у вас есть несколько tomcats, работающих на одном компьютере, и они разделяют серверные библиотеки, но я отвлекаюсь).

Так обновить следующим образом:.

log4j.appender.MonitorAppender.File=${catalina.base}/logs/MonitorLog.log 
+3

Для тех, кто запустить приложение из Eclipse, - каталог '$ {catalina.base}' переменная будет заменена на '% WORKSPACE% \ метаданных \ .plugins \ орг .eclipse.wst.server.core \ tmp1' где '% WORKSPACE%' - фактический абсолютный путь рабочей области. –

Смежные вопросы