Log4j2 - 以编程方式获取附加过滤器
Log4j2 - Get appender filter programmatically
我目前正在将一个项目从使用 log4j1 升级到 log4j2。
代码中有些地方正在调用 appender.getFilter(),使用新的 API 不再可用。
旧代码使用 org.apache.log4j.Appender 我现在正在使用 org.apache.logging.log4j.core.Appender.
查看 log4j2 文档和代码,我可以看到可以将过滤器添加到 Appender,但我找不到如何获取它们。
有没有办法以编程方式获取已应用于 Appender 的过滤器?
getFilter()
仍然存在,但已从 Appender
接口中删除:不需要 appender 来支持过滤器,尽管所有那些标准的都支持。
要检索过滤器,您只需转换为 Filterable
:
final Filter filter = appender instanceof Filterable ?
((Filterable) appender).getFilter() :
null;
备注:在 Log4j 中 2.x 过滤器可以出现在四个不同的位置(参见 documentation)。
我目前正在将一个项目从使用 log4j1 升级到 log4j2。 代码中有些地方正在调用 appender.getFilter(),使用新的 API 不再可用。 旧代码使用 org.apache.log4j.Appender 我现在正在使用 org.apache.logging.log4j.core.Appender.
查看 log4j2 文档和代码,我可以看到可以将过滤器添加到 Appender,但我找不到如何获取它们。
有没有办法以编程方式获取已应用于 Appender 的过滤器?
getFilter()
仍然存在,但已从 Appender
接口中删除:不需要 appender 来支持过滤器,尽管所有那些标准的都支持。
要检索过滤器,您只需转换为 Filterable
:
final Filter filter = appender instanceof Filterable ?
((Filterable) appender).getFilter() :
null;
备注:在 Log4j 中 2.x 过滤器可以出现在四个不同的位置(参见 documentation)。