log4j的日誌檔案儲存到專案釋出目錄,log4j檔案每天分割按日期命名
自己設定目錄,也就是在專案啟動時通過System.setProperty來設定,實現ServletContextListener來解決:
public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
//System.out.println("log4jdir:"+log4jdir);
System.setProperty(log4jdirkey, log4jdir);
}
}
web.xml配置:
<listener>
<listener-class>com.haier.framework.util.log4jlistener</listener-class>
</listener>
log4j.prtperties 配置:
# Set root logger level to WARN and append to stdout
log4j.rootLogger=INFO,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout\t
# Pattern to output the caller‘s file name and line number.
#log4j.appender.console.layout.ConversionPattern=[%p]%l--- %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#以日期命名每天的LOG檔名,
log4j.appender.file.File=${log4jdir}/logs/log.log
log4j.appender.file.DatePattern =yyyyMMdd‘.log‘
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %L-%d{yyyy-MM-dd HH:mm:ss,SSS} method:%l - %m%n
在測試的時候怎麼也出不來想要的類似“log.log20140518.log”這樣的日誌檔案,只有一個"log.log"的檔案,7日(今天)生成的日誌是以 “log.log”的形式儲存的,當到8日(明天)的時候是把7日生成的log.log檔案儲存到log.log201400707.log,然後在建立一個8日的log.log檔案,依次類推。
所以一定要注意,在測試的時候需要修改系統時間才能看到生成的日誌。
轉自:http://yangsm.blog.51cto.com/1065729/1435320