如何配置具有2个log4j2.xml文件的java应用程序,以便两个配置都正常工作

时间:2016-02-02 07:27:49

标签: java xml log4j2

我们正在运行名为Java的{​​{1}}文件,对于此应用程序,我们使用Calc.java文件来记录名为log4j2.xml的文件。我们的LogCalc.txt使用名为Calc.java .jar文件,该文件由Addition.Jar组成,该文件还使用Add.java文件进行自己的日志记录。一个名为log4j2.xml的文件。

这里的问题是,当我们运行LogAdd.txt并从Calc.java访问方法时,日志记录仅在Addition.Jar中发生LogCalc.txt中的配置考虑到log4j2.xml的1}},Calc.java的{​​{1}}未被考虑在内。因此,我无法从log4j2.xml获取日志, LogAdd.txt为空

我们如何更改配置,以便我们可以Addition.jar中的LogAdd.txt以及Calc.java中的LogCalc.txt查看两个日志,即{{1}配置必须在我们的应用程序中正常工作,并且它们都使用各自Add.java文件中的自己的配置记录到不同的文件中。

我们的目标是创建一个主应用程序使用LogAdd.txt的项目,此项目中包含的 .jar 正在使用XML,但我们应该从他们两个分别对各自的appender没有任何问题。

我们的Xml文件如下所示。 Addition.jar中使用的log4j2.xml如下:

XML

与Calc.java一起使用的log4j2.xml文件如下:

log4j2.xml

1 个答案:

答案 0 :(得分:1)

Log4j将找到它在类路径中找到的第一个log4j2.xml,并将其用于配置。它目前不支持多种配置,但正在进行工作以允许它。即使这样做也不会像你的配置工作那样起作用,因为记录器是相同的。

我建议你在线查看log4j指南。 Log4j不会根据jar文件进行登录,而是通过比较正在使用的记录器的名称与配置的内容。如果您希望一个jar中的所有内容都转到一个文件,那么对于第一个jar使用记录器名称(例如Calc),对于第二个jar使用LogCalc的记录器名称。然后让您的配置将每个记录器的事件路由到相应的文件。