如何在Log4j 2.2中使用LoggingEvent类

Gra*_*ant 5 java logging log4j log4j2

我想从Log4j 1.x迁移到Log4j2.x。所以我正在尝试使用这里log4j-1.2-api.jar提到的。我的应用程序具有的实现 ,但是我找不到使用log4j 2.x api桥使用LoggingEvent的方法。无论如何,我可以在Log4j 2.2中使用LoggingEvent吗?org.apache.log4j.spi.LoggingEvent

谢谢。

Rem*_*pma 2

在内部,log4j 使用 LogEvent 将所有数据片段(日志消息、线程名称、时间戳、标记、记录器名称等)传送到它们可能出现在输出中的附加程序。

Log4j 日志事件仅供内部使用,不能由应用程序扩展。例如,异步记录器使用 LogEvent 接口的专门实现来满足底层 LMAX Disruptor 库的要求。扩展这一点并不容易。

我不清楚您的用例,但例如,如果您想开发一个自定义附加程序,该附加程序需要 LogEvent 接口中不存在的自定义数据,您可以考虑使用 ThreadContext 映射将数据从您的应用程序传递到自定义附加程序,而不是而不是尝试使用自定义日志事件。

  • 如果您正在寻找 Java util 日志记录和 log4j 之间的桥梁,请注意 log4j2 提供了 JUL 适配器:https://logging.apache.org/log4j/2.x/log4j-jul/index.html 您需要的一切要做的是将 log4j-jul-2.2.jar 放入类路径中并设置系统属性 `-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager` 将所有 JUL 日志记录重定向到 log4j2。 (2认同)