Log4j2配置

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--设置log4j2的自身log级别为warn-->
<configuration status="Debug" monitorInterval="10">
    <appenders>
        <console name="Console">
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </console>

        <RollingRandomAccessFile name="RollingFileInfo" fileName="${web:rootDir}/logs/info.log"
                                 filePattern="${web:rootDir}/logs/info/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100KB"/>
            </Policies>
            <!-- 最多备份30天以内的日志,此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量,并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->
            <CronTriggeringPolicy schedule="* * * * * ?"/>
            <DefaultRolloverStrategy>
                <Delete basePath="${web:rootDir}/logs/info" maxDepth="2">
                    <IfFileName glob="*/info-*.log" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="RollingFileWarn" fileName="${web:rootDir}/logs/warn.log"
                                 filePattern="${web:rootDir}/logs/warn/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100KB"/>
            </Policies>
            <!-- 最多备份30天以内的日志,此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量,并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->
            <CronTriggeringPolicy schedule="* * * * * ?"/>
            <DefaultRolloverStrategy>
                <Delete basePath="${web:rootDir}/logs/warn" maxDepth="2">
                    <IfFileName glob="*/warn-*.log" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="RollingFileError" immediateFlush="true" fileName="${web:rootDir}/logs/error.log"
                                 filePattern="${web:rootDir}/logs/error/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100KB"/>
            </Policies>
            <!-- 最多备份30天以内的日志,此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量,并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->
            <CronTriggeringPolicy schedule="* * * * * ?"/>
            <DefaultRolloverStrategy>
                <Delete basePath="${web:rootDir}/logs/error" maxDepth="2">
                    <IfFileName glob="*/error-*.log" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="RollingFileDebug" immediateFlush="true" fileName="${web:rootDir}/logs/debug.log"
                                 filePattern="${web:rootDir}/logs/debug/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="DEBUG"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100KB"/>
            </Policies>
            <!-- 最多备份30天以内的日志,此处为策略限制,Delete中可以按自己需要用正则表达式编写 -->
            <!-- DefaultRolloverStrategy字段中加入max=“30”经测试是配合SizeBasedTriggeringPolicy限制%i的存在数量,并没有发现是网上流传的是最多保存多少个文件的限制,也或许是我写的有问题 -->
            <CronTriggeringPolicy schedule="* * * * * ?"/>
            <DefaultRolloverStrategy>
                <Delete basePath="${web:rootDir}/logs/debug" maxDepth="2">
                    <IfFileName glob="*/debug-*.log" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>
    </appenders>

    <loggers>
        <logger name="org.springframework" level="INFO"/>
        <logger name="org.mybatis" level="DEBUG"/>
        <root level="DEBUG">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
            <appender-ref ref="RollingFileDebug"/>
        </root>
    </loggers>
</configuration>
NOTE:DefaultRolloverStrategy中的max默认为7,即i最大为7(如以上配置中,就是一天最多备份七个文件,超出了就删除最早的);i最大值最大可设置为30,代表最多30个文件
web.xml里加

<context-param>
        <param-name>log4jConfiguration</param-name>
        <param-value>classpath:log4j2.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

如果web.xml里之前有配置log4j,要先删除/注释

PS.log4j2配置字段意思与用法详见

http://blog.csdn.net/autfish/article/details/51203709

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值