Подтвердить что ты не робот

Как указать журналы Tomcat в качестве исходного файла log4j log

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

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

# 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 находился в каталоге Tomcat logs/

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

4b9b3361

Ответ 1

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

Итак, обновляйте следующее:

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