当前位置: 首页 > 知识库问答 >
问题:

如何将LoggingEvent类与log4j 2.2一起使用

舒嘉德
2023-03-14

我想从Log4j 1.x迁移到Log4j 2.x。所以我尝试使用Log4j-1.2-api。jar,如本文所述。我的应用程序实现了org.apache.log4j.spi。LoggingEvent,但我找不到将LoggingEvent与log4j 2.x api桥一起使用的方法。我是否可以将LoggingEvent与log4j 2.2一起使用?

谢谢。

共有2个答案

赵景曜
2023-03-14

在内部,log4j使用LogEvent将所有数据段(日志消息、线程名称、时间戳、标记、记录器名称等)携带到appender,这些数据段可能出现在输出中。

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

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

皮嘉德
2023-03-14

升级Log4j时,我只是使用了LogEvent而不是LoggingEvent。

AppenderSkeletonappend(LoggingEvent事件)方法在AbstractAppender中显示为append(LogEvent事件),这是我使用LogEvent而不是LoggingEvent的提示。

 类似资料:
  • 问题内容: 我想从Log4j 1.x迁移到Log4j2.x。所以我正在尝试使用这里提到的。我的应用程序具有的实现 ,但是我找不到使用log4j 2.x api桥使用LoggingEvent的方法。无论如何,我可以在Log4j 2.2中使用LoggingEvent吗? 谢谢。 问题答案: 在内部,log4j使用LogEvent将所有数据段(日志消息,线程名称,时间戳,标记,记录器名称等)携带到可能出

  • 问题内容: 这是课程: 现在,我试图从类中“反射”此方法: 问题答案: 只有一个。 另一种选择是。 其他原语也是如此。

  • 我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理

  • 我正在尝试将composer与我的WampServer一起使用。 我所有文件的路径都是,但当我运行composer时,它会将供应商文件和其他东西安装到其他地方。 我甚至不知道我的项目在哪里,我也不能改变我的项目在哪里的路径。我已经尝试了所有的方法,但它似乎仍然没有在我的项目文件夹中安装供应商文件。

  • API level 28和Google建议使用registerNetworkCallback(NetworkRequest,PendingIntent)不推荐CONNECTIVITY\u操作。 我尝试使用ConnectionManager注册了registerNetworkCallback。NetworkCallback和它的工作,但我想使用PendingContent。 让我困惑的是公共空寄存器