Log4j2 的 log4j2.xml 是主流配置方式,核心包括 Appender(输出目标)、Layout(格式)、Logger(级别控制)及其绑定关系;最小配置需 Configuration 根标签、至少一个 Appender 和 Root Logger,并注意命名空间、路径、filePattern 时区及 additivity 等细节。
Log4j2 的 log4j2.xml 是主流的配置方式,比 properties 更灵活、可读性更强。核心是定义日志输出目标(Appender)、日志格式(Layout)、日志级别控制(Logger)以及它们之间的绑定关系。
一个最小可用的 log4j2.xml 必须包含 Configuration 根标签,并至少配置一个 Appender 和一个 Root Logger:
Configuration:最外层容器,常用属性有 status(内部日志级别,如 "warn")和 monitorInterval(秒级自动重载配置,如 "30")Appenders:定义日志输出位置,比如控制台(Console)、文件(File/RollingFile)、网络(Socket)等Loggers:定义日志记录器,root 是默认入口,也可自定义命名 Logger 控制特定包或类生产环境通常需要同时输出到控制台(便于调试)和按天/大小滚动的文件(便于归档):
,搭配 PatternLayout 定义日志格式,例如 %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
fileName(当前文件路径)、filePattern(归档文件名,含日期占位符如 app-%d{yyyy-MM-dd}-%i.log.gz),并嵌套 TimeBasedTriggeringPolicy 或 SizeBasedTriggeringPolicy 作为触发策略RollingFile 内配置 DefaultRolloverStrategy 来限制保留文件数,比如 max="30" 表示最多存 30 个归档Logger 决定哪些类的日志被记录、以什么级别、输出到哪些 Appender:
:全局默认,所有未显式配置的类都走这里;level 可设为 trace/debug/info/warn/error/fatal:针对某个包开启 debug 日志;additivity="false" 表示不继承 root 的 Appender,避免重复打印 绑定具体输出目标,可同时引用多个 Appender写配置时容易忽略但很关键的细节:

xmlns="http://logging.apache.org/log4j/2.0/config",否则 Log4j2 无法解析${sys:catalina.base}/logs/app.log),避免硬编码绝对路径RollingFile 却没生成归档文件,先检查 filePattern 中的日期格式是否匹配系统时区,再确认磁盘是否有写权限additivity="false" 并只引用文件 Appender基本上就这些。配置不复杂但容易忽略细节,建议从最小可运行版本开始,逐步加功能、验证效果。