You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4j v1中Logger“包含”的Appenders集合由什么定义?

Log4j v1 中 Logger.getAllAppenders() 返回集合的定义说明

核心定义

Logger.getAllAppenders() 返回的仅为当前Logger实例直接关联(显式添加)的Appender集合,这里的"包含"特指「当前Logger自身显式配置绑定的Appender」,不涉及父/子Logger的Appender继承逻辑。

父/子Logger的Appender归属问题

  • 子Logger不会包含父Logger的Appenders:
    子Logger的getAllAppenders()仅返回自己直接添加的Appender。需注意:子Logger默认会继承父Logger的Appender用于日志输出(可通过setAdditivity(false)关闭此行为),但这是日志事件的传递逻辑,和getAllAppenders()的返回值无关联。
  • 父Logger不会包含子Logger的Appenders:
    父Logger的getAllAppenders()仅返回自身直接绑定的Appender,完全不涉及子Logger的任何配置。

依据说明

Log4j v1的Category(Logger的父类)内部通过Hashtable存储自身的Appender实例,getAllAppenders()方法直接返回该哈希表的elements()枚举,源码逻辑明确限定了仅返回当前实例的Appender集合。

内容的提问来源于stack exchange,提问作者Borea Deitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:03:40