log4j2日志级别由Logger和Appender共同控制,优先级从高到低为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL;全局status属性仅影响log4j2自身内部日志,业务日志级别需通过Logger的level与Appender的ThresholdFilter协同设定,并支持按包/类精细化配置。

log4j2.xml 中的日志级别不是写死在某一行,而是通过 Logger 和 Appender 的组合控制,核心在于“谁(Logger)用什么规则(Filter/Level)把日志发给哪个目标(Appender)”。级别设置错,要么看不到关键日志,要么被海量 DEBUG 淹没。
log4j2 支持 8 个标准级别,从高到低依次为:
注意:级别是**严格有序比较**。例如,设为 INFO,则只输出 INFO、WARN、ERROR、FATAL 级别日志,DEBUG 及以下被自动忽略。
这个级别不控制你的业务日志,而是控制 log4j2 自身内部行为日志(比如配置加载失败、插件初始化异常等):
status="WARN"(推荐默认):只输出警告及以上内部信息status="DEBUG" 或 "TRACE":排查配置问题时开启,能看到 log4j2 加载了哪些 Appender、是否检测到文件变更等详细过程业务日志是否输出、输出到哪,由两层控制共同决定:
<loggers></loggers> 下定义,决定该 Logger 实例“愿意发出”什么级别的日志<appender></appender> 内配置,决定“接收并输出”什么级别的日志两者取交集。常见组合示例:
level="DEBUG",Console Appender 用 <thresholdfilter level="INFO"></thresholdfilter> → 控制台只显示 INFO 及以上,但 Logger 仍可记录 DEBUG 日志供文件 Appender 使用<thresholdfilter level="WARN"></thresholdfilter>,专门收集告警和错误,避免 info 日志挤占磁盘<root></root>)设 level="INFO",表示所有未显式声明的 Logger 默认按 INFO 处理不用所有日志都一个级别。可通过自定义 <logger></logger> 节点实现分层管理:
<logger name="org.apache.http" level="WARN" additivity="false"></logger>
additivity="false" 表示该 Logger 不再继承父 Logger(如 Root)的 Appender,避免日志重复输出这种配置放在 <loggers></loggers> 标签下,紧挨着 <root></root> 即可生效。
以上就是log4j2.xml配置详解 log4j2日志级别设置的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号