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