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 和级别分层。








