在 WAS 应用中使用 commons-logging 和 log4j 遇到的一个问题

commons-logging 为开发独立于日志实现系统的程序提供了一个统一的接口,我们可以在应用程序中通过设置一个环境变量来指定我们要使用的日志系统(如 log4j):

 

                   System.setProperty("org.apache.commons.logging.LogFactory",
                               "org.apache.commons.logging.impl.Log4jFactory");


                   System.setProperty("org.apache.commons.logging.Log", 
                               "org.apache.commons.logging.impl.Log4JLogger");

 

但是在开发 WAS 应用或者其他 web/j2ee 应用的时候应该特别小心,因为这个环境变量是全局性的,如果你设置了该变量,很可能会影响到其他应用,甚至应用服务器。

 

最近我们开发的一个 WAS 应用项目就遇到了这个问题。 我们的应用是一个 WAS ISC(Integrated Solution Console) 应用。我们在自己的程序里面设置了如上环境变量,然后把 commons-logging 和 log4j 的 jar 包放到我们应用自己的 classpath 中。不幸的是,WAS ISC 也是通过 commons-logging 的这两个环境变量来确定当前的日志系统并使用。本来WAS 是将这两个环境变量设置为一个非 log4j 的日志系统,而我们的应用把它改成了 log4j,所以导致 ISC 加载 class 的时候出错,因为 ISC 的 classpath 中根本没有 log4j.jar.

 

使用 commons-logging 的环境变量是一个糟糕的选择,应该尽量避免。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值