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

使用单个log4j2 xml文件配置log4j2和log4j

朱博实
2023-03-14

我已经将应用程序迁移到Log4J2,并通过log4j2.xml对其进行了配置

但是,我使用的一些库依赖于log4j1。如果我使用以下方式运行应用程序:

-Dlog4j.configurationFile=path/to/log4j2.xml

我尝试的另一种方法是将log4j和log4j2配置在一起:

-Dlog4j.configurationFile=path/to/log4j2.xml -Dlog4j.configuration=path/to/log4j.xml

我担心的是日志配置文件和输出的碎片化。我还担心log4j.xml和log4j2.xml之间可能存在的冲突。例如,logfile Error.log被配置为使用log4j1中的FileAppender和log4j2中的RollingFileAppender。

有什么建议吗?

log4j:WARN No appenders could be found for logger (org.apache.activemq.util.ThreadPoolUtils).
log4j:WARN Please initialize the log4j system prohtml" target="_blank">perly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

“答案”

似乎ActiveMQ-5.8.0.jar是与log4j1捆绑在一起的。解决方案只是在ActiveMQ之前加载log4j1.x桥。

共有1个答案

太叔凌龙
2023-03-14

我建议使用log4j2发行版中包含的Log4J-1.2适配器。这样,任何编码到log4j-1.2API的库都可以与log4j2一起工作,而不需要任何代码更改。

类路径应包括:

  • log4j-api-2.6.1.jar
  • log4j-core-2.6.1.jar
  • log4j-1.2-api-2.6.1.jar
  • log4j2.xml
    null

另请参见http://logging.apache.org/log4j/2.x/faq.html#which_jars

 类似资料:
  • 问题内容: 我已将应用程序迁移到log4j 2,并通过log4j2.xml对其进行了配置 但是,我正在使用的某些库取决于log4j1。如果我使用以下命令运行该应用程序: log4j 1抱怨找不到配置文件。我正在使用log4j 2,log4j-1.2-api-2.0-rc1.jar提供的log4j 1.x桥。是否可以使用单个log4j2.xml进行配置? 我尝试过的替代方法是同时配置log4j和lo

  • 我想使用新的log4j2-Java日志框架。一切正常,但我从一小时后就尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认包中。 将log4j2.xml文件移动到项目中的任意位置 将log4j2.xml文件命名为log4j.xml 在项目中创建一个文件夹,将log4j2.xml文件放

  • 这是我的配置文件: 日志配置文件读起来非常清楚,因为它使用my/log目录中定义的模式正确地写入。 这是我在代码中实例化它的方式:

  • 最近,我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml编译文件,并尝试使用它。不幸的是,我在console(Eclipse)中得到了这样的语句: 这是我的测试类代码: 和我的xml配置文件: 我还尝试使用不带标记的xml,以及包规范和各种文件夹/包目录,但没有帮助。现在我的文件直接位于Eclipse的project文件夹中。

  • 问题内容: 似乎log4j试图通过XML解析器解析.json配置文件,但是为什么呢? 我通过命令行参数设置log4j配置文件: 文件内容: 我得到的是: 我的lib文件夹中的Jar: hamcrest-junit-2.0.0.0.jar jackson-annotations-2.6.1.jar Jackson core-2.6.1.jar jackson-databind-2.6.1.jar j

  • Usng maven和Springboot。我希望每个环境(dev、cert)使用不同的文件配置(log4j2.xml、application.properties)。我在pom上创建了两个配置文件。xml文件,我还有两个文件夹,分别放在src/main/resources中,每个文件夹都有文件配置(dev和cert)。我想根据我使用的配置文件包括这些文件。我在目录中有其他文件,所以我不想使用这种