abi*_*964 8 java tomcat servlets log4j
我有一个log4j属性文件,它在我的tomcat> bin文件夹中创建一个文件,但是它可以将日志文件写入我的项目的根目录吗?webapps>测试> _ __?
这是我的log4j属性文件内容.
#define the console appender
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
# now define the layout for the appender
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%t %-5p %c{3} - %m%n
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=/test/a.log
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.rollingFile.MaxBackupIndex=2
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n
# now map our console appender as a root logger, means all log messages will go to this appender
#for console printing
#log4j.rootLogger = DEBUG, consoleAppender
#for file printing
log4j.rootLogger = DEBUG, rollingFile
Run Code Online (Sandbox Code Playgroud)
尝试替换这个:
log4j.appender.rollingFile.File=/test/a.log
Run Code Online (Sandbox Code Playgroud)
有了这个:
log4j.appender.rollingFile.File=../webapps/test/a.log
Run Code Online (Sandbox Code Playgroud)
注意(由Stephen C提供) - "../"表示此解决方案取决于您使用的Tomcat启动机制是否使$ CATALINA_HOME成为托管Tomcat的JVM之前的当前目录.有些人这样做,有些人则没有.
log4j配置理解"${catalina.home}",所以......
log4j.appender.rollingFile.File=${catalina.home}/webapps/test/a.log
Run Code Online (Sandbox Code Playgroud)
但是,我不认为将日志放入webapps树中是个好主意,因为如果重新部署了webapp,它们可能会被吹走.
把它们${catalina.home}/logs放进去.
或者更好的是,将它们放在特定于发行版的常规位置以放置应用程序日志文件; 例如"/ var/spool/..."或"/ var/log/...".
将日志文件放在标准位置意味着其他人(例如,在您度假时作为备份系统管理员的人)可以调查文件系统是否填满旧日志文件.