石家网站建设公司排名,上海人才网站官网入口,服务类网站建设策划书,网站建设app下载背景#xff1a;工程中同时存在log4j.xmllog4j2.xml
maven依赖如下#xff1a; 此时工程实际使用的日志文件为log4j.xml
1、当同时设置log4j和log4j2的桥接依赖时
maven依赖如下#xff1a; 此时启动会有警告日志#xff1a; 点击告警日志链接#xff1a;https://…背景工程中同时存在log4j.xmllog4j2.xml
maven依赖如下 此时工程实际使用的日志文件为log4j.xml
1、当同时设置log4j和log4j2的桥接依赖时
maven依赖如下 此时启动会有警告日志 点击告警日志链接https://www.slf4j.org/codes.html#multiple_bindings 由文章得知具体加载哪个log4j/log4j2文件是由jvm随机决定的。
工程桥接依赖顺序如下 经验证 jvm会选择上方桥接依赖与slf4j绑定具体可参见启动日志或断点源码 log4j与log4j2都包含Log4jLoggerFactory对象因此我们可通过包路径确认加载何bean。
为何这么加载暂且留个疑问等下回再去剖析感觉略深
至此我们便弄明白当工程必须存在两个log4j配置文件时文件的加载情况如何。
另发现工程日志路径打印异常问题表现为打印日志路径及文件名称异常后详细排查了target目录发现是由于配置文件中占位符未替换导致的由于工程基于profile因此我们通过修改pom文件中对应profile的build情况便可解决。 新增上图红框中文件配置即可。
经验证问题至此已全部解决。