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需要的日志级别,这个次序不能搞颠倒。