当前位置: 首页 > 面试题库 >

混合log4j 1.x和log4j 2

况承福
2023-03-14
问题内容

我有一个正在使用log4j2编写的新应用程序,以利用其一些新功能。它使用的其中一个库较旧,是使用log4j
1.x构建的。我在应用程序中的新代码写入日志时遇到问题,但旧库中的代码未写入日志。我什至有一个类,它是旧库中某些东西的子类,并且也被旧库中的代码调用,并且此代码也不会写入日志。我已将应用程序配置为使用log4j2版本2.0.2,并且在将旧库作为maven依赖项引用时,我明确排除了log4j。

如何在旧库中获取与新代码登录相同文件的代码?

重写旧库应该被认为是最后的选择


问题答案:

您是否知道log4j2包括一个用于log4j-1.2的桥?您可以通过删除旧的log4j-1.2.17.jar并包括以下三个jar来使用它:

  • log4j-api-2.x.jar
  • log4j-core-2.x.jar
  • log4j-1.2-api-2.x.jar

这将导致您的应用程序对log4-1.2
API的所有调用都被路由到log4j2实现。常见问题解答中有一个可以阐明问题的图表。(不要忘记从类路径中删除旧的log4j-1.2
jar!)



 类似资料:
  • 嗨,我遇到了一些使用log4j的代码。我想移动到log4j2。从http://logging.apache.org/log4j/2.x/manual/migration.html中,我发现可以使用log4j-1.2-api.jar。我有以下问题: > 在代码中,我有一个自定义的appender(正如链接中给出的,我不应该使用类appender的内部),这意味着我不能使用log4j-1.2-api.

  • 问题内容: 是否有人将Hamcrest与TestNG集成在一起,以便其匹配器可以轻松地用于TestNG断言中? 问题答案: 简而言之,要回答您的问题:您不需要将TestNG与Hamcrest集成。只需直接调用哪个抛出。 背景 我通过Google找到了您的问题,想知道完全一样的问题。在进一步谷歌搜索之后,我没有找到满意的答案,因此我阅读了JUnit与Hamcrest集成的源代码。 对于JUnit,通

  • 问题内容: 我一直在用Python开发一个库,我想做一些性能改进。 是否可以在Python中编写一些代码并在Go中编写一些代码,并在它们之间传递数据?如果可能的话,是否有任何有关此操作的示例? 像这样: 问题答案: 你需要一个 胶 之间,例如编程语言或通信通过网络。如果您将https://docs.python.org/2/extending/extending.html与http://golan

  • 问题内容: 我正在尝试使用Xuggler(我 相信 它是在幕后使用的)执行以下操作: 接受原始的MPJPEG视频比特流(来自小型TTL串行相机)并将其编码/转码为h.264;和 接受原始音频bitream(来自麦克风)并将其编码为AAC;然后 将两个(音频和视频)位流一起混合到MPEG-TS容器中 我已经看过/阅读了他们的一些出色的教程,到目前为止,这是我所拥有的: 首先,我想我已经很近了,但是还

  • 我有一个Android应用程序,显示视频使用gstream er。它类似于这里提到的教程: http://docs.gstreamer.com/display/GstSDK/Android教程3:视频 特别是,它使用GStreamerSurfaceView扩展了SurfaceView。 我现在想执行一些处理视频与另一个库,使用GLSurfaceView: 我怎么能"插入"GLSurfaceView

  • 我正在尝试创建一个可以同时包含元素和值的java/jaxb类。 我想在A类的列表中读取一个类的属性,并作为A类本身的值输出。 这是XML: 我必须阅读: 并生产: 这是我的错误类-工作正常: 我的设备类别: Jaxb 抱怨我不能在同一类中同时拥有 xml 元素(错误 )和 xml 值 如何正确建模/注释此内容,以允许我读取 error xml 标记的属性并将其生成为设备标记的值?