我目前正在将一个项目从使用log4j1升级到log4j2。代码中有一些地方正在调用 appender.getFilter(),这些地方在使用新API时不再可用。旧代码使用 org.apache.log4j.Appender,而我现在使用 org.apache.logging.log4j.core.Appender。检查log4j2文档和代码,我可以看到过滤器可以添加到Appenders,但我无法找到如何获得它们。是否有一种方法可以通过编程方式获取已应用于Appender的过滤器?
sqxo8psd1#
getFilter()仍然存在,但已从Appender接口中删除:附加器不需要支持滤波器,尽管所有那些标准的附加器都需要。要检索过滤器,只需强制转换为Filterable:
getFilter()
Appender
Filterable
final Filter filter = appender instanceof Filterable ? ((Filterable) appender).getFilter() : null;
备注:在Log4j 2.x中,过滤器可以出现在四个不同的位置(参见documentation)。
1条答案
按热度按时间sqxo8psd1#
getFilter()
仍然存在,但已从Appender
接口中删除:附加器不需要支持滤波器,尽管所有那些标准的附加器都需要。要检索过滤器,只需强制转换为
Filterable
:备注:在Log4j 2.x中,过滤器可以出现在四个不同的位置(参见documentation)。