将应用移到Jetty下后发现产生的日志文件位置有问题(默认关闭的),后经检查发现在log4j.properties 中使用
${catalina.base}
当然在jetty中是认不出这个变量的,其有一个相似的变量为
${Jetty.base}
但是若这样设置,将来应用在tomcat 中或者其它的容器如WebLogic中又不可用,如何做到配置文件在各种Servlet容器可用呢?
其实很简单,只需将其配置成logs/下面就好,下面是我们的一个简化配置:
# Logging level
app.log=logs/
log4j.rootLogger=debug, file, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n
#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=64MB
log4j.appender.file.MaxBackupIndex=9
#- File to log to and log format
log4j.appender.file.File=${app.log}/app.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN
# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF