log4j在tomcat下多个工程的log4j.properties配置

本文介绍了如何在Tomcat环境下,处理多个工程共享一个log4j.properties配置文件以实现各自独立的日志输出。当log4j.jar存在于每个工程的lib下时,每个工程可以使用自己的log4j.properties。反之,若统一引用tomcat的lib下的log4j.jar,则需要将所有工程的日志配置集中在同一个log4j.properties文件中,放置在Tomcat的WEB-INF下。通过设置不同的包名来区分不同工程的日志输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于tomcat下多个工程配置一个log4j.properties,达到输出各自的日志的问题,

经过实际工作的总结和调查,在这里做出一个总结和备忘。

 

提起log4j的配置,我们常用的配置办法是为每个工程建立一个log4j.properties文件,并在其中写入自己的输出日志的信息。

但是我在工作中遇到一个问题,其实log4j.properties文件的加载与项目引用的jar包有着不可分割的关系。

我遇到的两种情况如下:

1、log4j.jar存在于每个工程的lib下

你的工程下的\WebRoot\WEB-INF\lib\路径下存在自己项目需要的jar包,log4j.jar存在于此路径下时,

当你的tomcat启动时,使用的是工程各自路径下的log4j.jar包来加载每个工程自己的log4j.properties。

这个时候每个项目都可以使用自己的工程下的WebRoot\WEB-INF\classes\log4j.properties配置,

输出各自指定的日志文件。

2、log4j.jar不存在于每个工程的lib下,统一调用tomcat的lib下的log4j.jar

这个时候,你会发现多个工程的log4j.properties一次被加载,但是后加载的会覆盖前面加载的配置内容。

导致所有的工程的log都打出在最后加载的工程的log4j.properties中设定的log文件中。

这个时候解决办法就是,把所有的工程的日志配置在同一个log4j.properties文件中。

然后将这个log4j.properties文件放到tomcat的Tomcat 6.0\webapps\ROOT\WEB-INF\下。

 

例:A工程和B工程两个部署在tomcat下的项目,log4j.properties的简单设定。

log4j.rootLogger=INFO

#========================================================================
#向控制台输出log信息
#========================================================================
log4j.category.com=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss.SSS} %-5p %c %m%n

#========================================================================
# A项目log输出配置  文件大小到500KB时自动生成新log文件,最大生成10个
#========================================================================
log4j.category.com.a=INFO, ALOG
log4j.appender.ALOG.File=D:/workspace/Aproject/log/a-web-log.log
log4j.appender.ALOG=org.apache.log4j.RollingFileAppender
log4j.appender.ALOG.MaxFileSize=500KB
log4j.appender.ALOG.MaxBackupIndex=10
log4j.appender.ALOG.layout=org.apache.log4j.PatternLayout
log4j.appender.ALOG.layout.ConversionPattern=%d{MM/dd HH:mm:ss.SSS} %-5p %c %m%n

#========================================================================
# B项目log输出配置  文件大小到500KB时自动生成新log文件,最大生成10个
#========================================================================
log4j.category.com.b=INFO, BLOG
log4j.appender.BLOG.File=D:/workspace/Bproject/log/b-web-log.log
log4j.appender.BLOG.=org.apache.log4j.RollingFileAppender
log4j.appender.BLOG..MaxFileSize=500KB
log4j.appender.BLOG..MaxBackupIndex=10
log4j.appender.BLOG..layout=org.apache.log4j.PatternLayout
log4j.appender.BLOG..layout.ConversionPattern=%d{MM/dd HH:mm:ss.SSS} %-5p %c %m%n

关于log4j.properties具体的设定方式可参见其他文章的详细讲解,这里不做赘述。

需要注意的是,红字部分,是你的项目中需要输出log部分代码的包名。

A工程的功能代码保存的路径:Aproject\src\com\a\

B工程的功能代码保存的路径:Bproject\src\com\b\

也就是说,每个项目在开发时,最好在com下面用不重复的文件夹名来区分,这样才能区分输出日志时针对的工程。

 

工作中遇到的问题是最有价值的问题,我相信这也是我最宝贵的财富。

就算很简单的问题,我想也有它的价值,也许会帮助到许多人。

选择总结和整理,也恰恰是自己变得富有的第一步,希望我们都可以成为一个富有的人!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值