Java 如何将Tomcat日志指定为log4j日志文件的主目录
我的WAR使用的是通过WAR中Java 如何将Tomcat日志指定为log4j日志文件的主目录,java,tomcat,log4j,Java,Tomcat,Log4j,我的WAR使用的是通过WAR中classes/目录下的log4j.properties文件配置的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.File
classes/
目录下的log4j.properties
文件配置的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
通过这种配置,我试图实现以下目标:
- 所有调试级别及更高级别的日志消息都会被记录(因此所有内容都会被记录)
- 我希望
文件位于Tomcat的MonitorLog.log
目录下logs/
此配置是否实现了这些项,如果没有,需要更改什么?如果您知道此WAR将只部署到tomcat,则可以利用系统属性
catalina.base
,它表示tomcat基本文件夹的根(还有一个cataline.home
,但它们通常是相同的,除非有多个tomcat在同一台机器上运行,并且共享服务器libs,但我离题了)
因此,更新如下:
log4j.appender.MonitorAppender.File=${catalina.base}/logs/MonitorLog.log
对于从Eclipse运行应用程序的人,
${catalina.base}
变量将被%WORKSPACE%\.metadata\.plugins\org.Eclipse.wst.server.core\tmp1
替换,其中%WORKSPACE%
是实际的工作区绝对路径。