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 @   Ye_yang  阅读(7204)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示