首页 > 代码库 > WebSphere & Log4j

WebSphere & Log4j

IBM的东西,真是太麻烦了,一个日志都给你替换掉,太霸道了,Google了下,居然是个普遍想象,不过也有相关的解决方

 

案,基本好像都是在 WAS5,WAS6.1上的,我没环境,不过我这边的WAS7 没试成功过

 

描述两种网上的流行的配置

 

第一种:

 

在你的项目的\webapp\META-INF下建立一个名叫services的文件夹,然后建立一个名为org.apache.commons.logging.LogFactory的文件,里面添加一行文字:

org.apache.commons.logging.impl.Log4jFactory

 

即可解决 

 

第二种:

 

在类路径下增加commons-logging.properties配置文件,文件内容为: 
priority=1 
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

 

.将类加载方式改成parent_last 

 

以上两种我在 WAS 7都没试成功过。

 

就在绝望之际,柳暗花明,在国外的小角落了发现了,下面一段描述

 

*A very strange solution :*
put in / /profiles//properties/
the file commons-logging.properties with :
priority=1
org.apache.commons.logging.LogFactory=org.apache.c ommons.logging.impl.LogFactoryImpl
org.apache.commons.logging.Log=org.apache.commons. logging.impl.Log4JLogger
I don‘t know which of those lines are really important...

 

http://fixunix.com/websphere/538047-log4j-commons-logging-was6-1-0-19-a.html 

 

尝试之果然有效

 

步骤如下(以windows为例):

 

1、将写好配置的commons-logging.properties 放到 

   D:\IBM\WebSphere\AppServer\profiles\AppSrv01\properties 目录

 

2、将 log4j-1.2.14.jar commons-logging-1.1.1.jar 放到

   D:\IBM\WebSphere\AppServer\lib 目录下

 

3、将你的log4j.Properties 也放到步骤2的目录下

 

不需要改类加载气先后顺序,也不要要动工程结构,重启下服务,日志就生效,,完全是按照log4j的配置文件打印日志的。

目前知道的缺点:所有的应用公用了一个日志配置文件,,需要改变websphere的本身的配置

 

为啥没就人家weblogic 方便呢,几乎啥都不用动,想怎么用就用怎么用。

 

5 楼 jucks2611 2014-09-17  
我通过第一个方法,日志输出了。环境是was7
4 楼 accphc 2011-11-18  
WAS7的这个问题我也找了很多方法,
博主的解决方案不太现实,在生产环境中一个server环境下会有多个应用,这样会影响到其他应用。
直接Logger log=Logger.getLogger(this.getClass());用log4j的什么都不用配,直接打印日志!
3 楼 krasonly 2011-10-14  
技术分享 那是因为你那个commons-logging.properties中有两个空格技术分享
priority=1
org.apache.commons.logging.LogFactory=org.apache.c ommons.logging.impl.LogFactoryImpl
org.apache.commons.logging.Log=org.apache.commons. logging.impl.Log4JLogger
去掉就启动起来了
2 楼 sjmz30071360 2011-10-07  
我的在WAS7.0.0.11上,不用加commons-logging.properties配置文件,就可以正常生成日志文件。
但是不能正常的rename和delete生成的文件,即便是停掉application也不可以。
只有把server停掉或者restart之后才可以。
有没有什么好的解决方案呢?
1 楼 jiminsc 2011-09-27  
我是was7,在类路径下增加commons-logging.properties配置文件,可以正常生产日志文件

WebSphere & Log4j