log4j.properties配置文件如下:
#Logger root setting
log4j.rootLogger = INFO,FILE,CONSOLE,DEBUG
log4j.threshhold = INFO,DEBUG
#Daily Rolling File Appender
log4j.appender.FILE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File = ../webapps/logs/gov.log
log4j.appender.FILE.DatePattern = '.'yyyy-MM-dd
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss}][%p][%c]%m%n
我们可以看到文件的位置配置为 ../webapps/logs/gov.log。
这样配置就会出现一个问题,我们一般是进入tomcat的bin目录下启动startup.sh,这样日志文件就会在${catalina.home}/webapps/log目录下。
但是我们的jenkins的启动目录是/目录,然后运行/usr/local/tomcat/apache-tomcat-7.0.73/bin/startup.sh。这样日志文件就会在/webapps下,所以我们在原来的${catalina.home}/webapps/log目录中找不到我们的日志文件。
结论:log4j.properties配置的相对路径是相对我们当前运行的路径,而非程序运行的路径,建议使用系统变量来解决这个问题。