使用Spring Log4jConfigListener实现Log4j中以相对路径指定的日志文件

1. 在web.xml 增加如下代码:

<context-param>     
        <param-name>webAppRootKey</param-name>      
            <param-value>webapp.root</param-value>
    </context-param>
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/classes/log4j.properties</param-value>
        </context-param>
    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>1000</param-value>
    </context-param>
    <listener>
           <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
2. log4j.properties 文件内容如下:

#根的方案主,给所有java类指定日志模式
log4j.rootLogger=DEBUG,CASE1,CASE2
#适用于调试程序,log4j输入为debug级,并将ERROR、WARN、INFO、DEBUG输出到控制台及日志文件

#CASE1方案,输出到控制台
log4j.appender.CASE1=org.apache.log4j.ConsoleAppender
#模板布局
log4j.appender.CASE1.layout=org.apache.log4j.PatternLayout
#信息输出格式
log4j.appender.CASE1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%l]-[%p] %m%n

#CASE2方案,输出到每日一个文件
log4j.appender.CASE2=org.apache.log4j.DailyRollingFileAppender
#输出文件名
#log4j.appender.CASE2.file=/data/nba/id.nba.tom.com/idnba/logs/logsDaily
log4j.appender.CASE2.file=${webapp.root}/logs/wapDaily.log
#每天更换文件名时的命名规则
log4j.appender.CASE2.DatePattern='.'yyyy-MM-dd
#模板布局
log4j.appender.CASE2.layout=org.apache.log4j.PatternLayout
#信息输出格式
log4j.appender.CASE2.layout.ConversionPattern=[%-5p] %L-%d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l - %m%n
3. 主要实现类:

org.springframework.web.util.Log4jConfigListener

org.springframework.web.util.Log4jWebConfigurer

org.springframework.web.util.WebUtils




你可能感兴趣的:(spring,log4j)