【问题标题】:Log4j2 - Get appender filter programmaticallyLog4j2 - 以编程方式获取附加过滤器
【发布时间】:2021-12-28 15:40:04
【问题描述】:

我目前正在将一个项目从使用 log4j1 升级到 log4j2。 代码中的某些地方正在调用 appender.getFilter(),但使用新 API 时不再可用。 旧代码使用 org.apache.log4j.Appender 而我现在正在使用 org.apache.logging.log4j.core.Appender。

查看 log4j2 文档和代码,我可以看到可以将过滤器添加到 Appenders,但我无法找到如何获取它们。

有没有办法以编程方式获取已应用于 Appender 的过滤器?

【问题讨论】:

    标签: java log4j log4j2


    【解决方案1】:

    getFilter() 仍然存在,但它已从 Appender 接口中删除:虽然所有标准都支持过滤器,但并不需要附加程序来支持过滤器。

    要检索过滤器,您只需将其转换为Filterable:

    final Filter filter = appender instanceof Filterable ?
                          ((Filterable) appender).getFilter() :
                          null;
    

    备注:在 Log4j 2.x 中,过滤器可以出现在四个不同的位置(参见documentation)。

    【讨论】:

      猜你喜欢
      • 2014-01-01
      • 2013-03-04
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 2014-07-20
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多