Log4j 2-以编程方式获取附加器筛选器

guz6ccqo  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(109)

我目前正在将一个项目从使用log4j1升级到log4j2。代码中有一些地方正在调用 appender.getFilter(),这些地方在使用新API时不再可用。旧代码使用 org.apache.log4j.Appender,而我现在使用 org.apache.logging.log4j.core.Appender
检查log4j2文档和代码,我可以看到过滤器可以添加到Appenders,但我无法找到如何获得它们。
是否有一种方法可以通过编程方式获取已应用于Appender的过滤器?

sqxo8psd

sqxo8psd1#

getFilter()仍然存在,但已从Appender接口中删除:附加器不需要支持滤波器,尽管所有那些标准的附加器都需要。
要检索过滤器,只需强制转换为Filterable

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

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

相关问题