java – log4j2日志记录发生在错误的路径上

前端之家收集整理的这篇文章主要介绍了java – log4j2日志记录发生在错误的路径上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在weblogic中部署了一个ear,并将log4j2.xml logPath设置为
<Property name="logPath">some_path_1<Property>

和记录器定义为

<Logger name="a.b.c.d" level="INFO" />

在这个ear / lib里面有一个包含log4j2.xml的jar,logPath属性定义为

<Property name="logPath">some_path_2<Property>

和一个包装结构非常相似的记录器

<Logger name="a.b.c" level="INFO" />

log4j2.xml都配置为具有不同的日志文件名.
但两者的日志都在路径some_path_2中,并且在该jar中定义了文件

如何确保两个日志记录输出按照定义单独进行?

我的耳朵结构就像

ear
|--lib
|--|--abc.jar
|--|--|--log4j2.xml //the one thats getting loaded
|--xyz.war
|--|--WEB-INF
|--|--|--classes
|--|--|--|--log4j2.xml // the one I want

Edit1:我在包含war的web.xml中添加了以下内容,但它没有帮助

<context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/classes/log4j2.xml</param-value>
    </context-param>

编辑2:我也试过这个,发现这是间歇性的

ear
|--lib
|--|--abc.jar
|--|--|--log4j2.xml //the one thats getting loaded
|--|--xyz.jar
|--|--|--log4j2.xml //the one I want.. works but not always.Does classloader loads the jars alphabetically?
|--xyz.war
|--|--WEB-INF
|--|--|--classes
|--|--|--|--log4j2.xml // the one I want

解决方法

Log4j仅使用log4j引导程序首次找到的配置文件初始化一次.将不考虑所有其他(可能存在的)配置文件.在相应的教程中了解有关log4j自动配置优先级的更多信息.

猜你在找的Java相关文章