tomcat中多个项目(web项目)共用log4j.jar的情况下,如何让其各自打印各自的日志文件。及输出同级别日志信息

本文介绍了在Tomcat中多个项目共用log4j.jar时,如何实现各自独立的日志文件。方法包括:1) 删除tomcat的log4j.jar,每个项目单独使用;2) 使用统一的log4j.properties文件,通过不同包名区分日志输出。同时提供了解决只输出同级别日志的方法,通过自定义LogAppender实现。
摘要由CSDN通过智能技术生成

问题描述:

1.项目A中有一个log4j.properties(配置为把日志输出到以项目名称命名的文件夹中) 

2.为了减轻tomcat负担,把项目A的WEB-INF/lib下的所有jar文件拷贝到tomcat下的lib中并修改catalina.properties对其加载 

3.把项目A复制一份为项目B 

4.然后把项目A和项目B同时发布在tomcat中(发布时删除了WEB-INF/lib) 
访问项目A和项目B,发现两个应用的日志全部输出到了项目A的文件夹中。 

在所有的jar文件都拷贝到tomcat/lib中的前提下,如何使得各个应用的log4j.properties生效呢?? 

目前知道的是,两个工程中的log4j.properties的确都被加载了,只是最后一个被加载的log4j.properties覆盖了前面加载的配置,也就是说只有最后被加载的生效了。

解决办法目前综合网上的有两种方法:

方法1:删除tomcat文件夹下里共用的log4j.jar,分别在项目里添加上自己的log4j.jar(要加在WEB-INF下的lib文件夹下),log4j.properties文件依然放在src下,项目启动加载会把其加载到WEB-INF下,正常情况这样就可以了,但是有些同学会遇到启动报错,说找不到log4j.jar这个jar,这里还须修改一下web.xml里的配置

正常情况下需要配置路径及监听器的,如下图(多个项目配多个日志请款下,其红圈里的value值要不一样,value自己随意起名字,不同即可)


我们只需把配置路径及监听器去掉即可。只留一个webAppRootKey这一项既可(本方法以亲测有效)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值