1. 程式人生 > >log4j的日誌檔案儲存到專案釋出目錄,log4j檔案每天分割按日期命名

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