log4j2.xml配置文件怎么写 日志级别设置方法

log4j2.xml 是 Log4j 2 的 XML 格式核心配置文件,需包含 Configuration、Appenders、Loggers(含 Root)三部分;日志级别按 TRACE

log4j2.xml 是 Log4j 2 的核心配置文件,用 XML 格式定义日志输出行为。日志级别控制哪些日志会被记录(比如只输出 ERROR 及以上),关键在于 中的 level 属性。

基础结构:必须包含的几个部分

一个可用的 log4j2.xml 至少要有:配置根节点、Appender(输出目的地)、Logger(日志器)和 Root(根日志器)。示例最小配置:



  
    
      
    

  
  
    
      
    

  

日志级别设置方法

Log4j 2 支持的级别从低到高为:TRACE 。级别设得越低,输出日志越多;设得越高,越严格。

  • 在 Root 中设置:影响所有未单独配置的 Logger,如 表示只输出 WARN 及更高级别日志
  • 在自定义 Logger 中设置:可针对某个包或类精细控制,例如:

      

    这样 com.example.service 下的日志按 DEBUG 级别输出,其他仍走 Root 配置
  • additivity="false" 很重要:避免日志重复打印(即不继承 Root 的输出)

常用 Appender 示例:控制输出位置

除了控制“输出什么级别”,还要指定“输出到哪”。常见组合:

  • 控制台输出(Console):开发调试用,上面已展示
  • 文件输出(File / RollingFile):生产环境推荐用 RollingFile,支持按大小/时间滚动归档
    filePattern="logs/app-%d{yyyy-MM-dd}-%i.log">
      
      
        
        
      

验证与调试小技巧

如果日志没按预期输出,可以:

  • 检查 status="WARN" 是否写成 status="DEBUG",开启 Log4j 自身的内部日志,看加载是否成功
  • 确认类路径下只有 一个 log4j2.xml(多个会冲突)
  • Java 启动时加参数 -Dlog4j2.debug 查看详细初始化过程
  • 在代码中调用 Logger.getLogger("xxx").debug("test") 测试是否触发

基本上就这些。配置不复杂但容易忽略 additivity 和文件路径权限等细节,建议先跑通 Console 输出,再逐步加 RollingFile 和级别分层。