Java 在外部库log4j.xml上覆盖log4j.xml配置

Java 在外部库log4j.xml上覆盖log4j.xml配置,java,jakarta-ee,logging,log4j,Java,Jakarta Ee,Logging,Log4j,因为我在项目中添加了一个外部jar文件,所以log4j配置是从外部jar文件中的log4j.xml获取的。我的应用程序中的log4j.xml配置未得到应用 是否有方法覆盖log4j.xml配置,以便选择我的应用程序log4j.xml 耳朵结构: \lib\externalJar\log4j.xml \appweb.war\WEB-INF\classes\log4j.xml 我可以在日志文件中看到警告:log4j:WARN找不到记录器的附加器 提前感谢如果您将所需的log4j jar文件绑定到we

因为我在项目中添加了一个外部jar文件,所以log4j配置是从外部jar文件中的log4j.xml获取的。我的应用程序中的log4j.xml配置未得到应用

是否有方法覆盖log4j.xml配置,以便选择我的应用程序log4j.xml

耳朵结构:

\lib\externalJar\log4j.xml

\appweb.war\WEB-INF\classes\log4j.xml

我可以在日志文件中看到警告:log4j:WARN找不到记录器的附加器


提前感谢

如果您将所需的log4j jar文件绑定到webapp的WEB-INF/lib目录中,那么webapps的类加载器将加载log4j类,您可以使用自己的配置。这将与ear类加载器加载的log4j实例分开,并由您添加的外部jar使用

我做了你提到的改变,但还是一样。我可以在日志中看到警告:log4j:WARN找不到loggerI的附加器我通过将log4j.xml文件添加到commans模块而不是web解决了问题,commans jar文件位于ear文件下的lib文件夹中。很高兴听到这个消息,但您可能已经破坏了您添加的外部jar的日志记录,它使用自己的log4j配置文件,除非您将log4j配置与该外部jar所需的配置合并,所以所有log4j配置都位于该(ear)类加载器的一个文件中