log4j2配置按照日志级别将日志输出到不同的文件

背景

在项目中,可能会产生非常多的日志记录,为了方便日志分析,可以将日志按级别输出到指定文件。

 

log4j2.xml配置文件

        <!--将info级别的日志单独输出到info.log中-->
        <RollingFile name="INFO-LOG"  fileName="info.log">
            <Filters>
                <!--将WARN及其以上级别的日志给DENY掉-->
                <ThresholdFilter level="WARN"  onMatch="DENY"   onMismatch="NEUTRAL"/>
                <!--ACCEPT info级别的日志-->
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
        </RollingFile>
        <!--将warn级别的日志单独输出到warn.log中-->
        <RollingFile name="WARN-LOG"  fileName="warn.log">
            <Filters>
                <!--将ERROR及其以上级别的日志给DENY掉-->
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
                <!--ACCEPT warn级别的日志-->
                <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
        </RollingFile>
        <!--将error级别的日志单独输出到error.log中-->
        <RollingFile name="ERROR-LOG" fileName="error.log">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
        </RollingFile>

注意点

重要的是,如果有多个ThresholdFilter,那么Filters是必须的。同时在Filters中,首先要过滤不符合的日志级别,把不需要的首先DENY掉,然后再ACCEPT需要的日志级别,这个次序不能搞颠倒。

 

参考资料

https://www.cnblogs.com/jessezeng/p/5144317.html

posted @ 2019-03-06 20:15  Ye_yang  阅读(7163)  评论(1编辑  收藏  举报