jboss log4j冲突分析与解决

Log4j作为日志组件被大多数的系统所使用,Jboss也不例外的采用了Log4j作为它的日志输出组件。

但在使用JBoss时,很多人经常碰到一些冲突,这些冲如自己配置的log4j文件无效,系统抛org.jboss.logging.util.OnlyOnceErrorHandlerobject is not assignable to a or

g.apache.log4j.spi.ErrorHandler variable异常等。为了解决造成这方面的原因,我们需要分析Jbosslog4j的一些关系。本文的下面内提供了一个最佳的配置及对问题的分析,在理解了下面的内容后,相信大家都能解决log4j的冲突问题,并找到符合自己的一种解决方法。

 

一、最佳无冲突配置

解决jbosslog4j冲突的最理想配置如下:

配置jboss_server_home/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml文件里的Java2ClassLoadingComplianceUseJBossWebLoaderfalse,如果存在WEB-INF/jboss-web.xml,则里面的java2ClassLoadingCompliancejava2ParentDelegaton属性也都设置成false。在webapplog4j的配置文件采用xml形式,并命名为log4j.xml,同时在webapplib里需要包含log4j相关的jar包,通过这样的配置后,webapplog4jjbosslog4j将相互隔离互不影响。

 

二、Log4j载入配置文件的方式

Log4j在查找它的配置文件的时候,默认情况下,首先会在Classloader里查找log4j.xml文件,第一个找到的文件作为它的配置,在找不到log4j.xml文件的情况下,再查找log4j.properties文件,找到则使用这个文件,没有找到则报错。

 

三、JBossLog4j的关系:

关于JBoss启动和ClassLoader模型的关系,请参见:

http://blog.csdn.net/youfly/archive/2009/02/12/3884081.aspx

为了更好的理解下面的内容,如果对JBoss的启动过程和ClassLoader模型不太清楚的话,请先阅读上面的文章。

下图是jbossclassloader和相关的log4j配置文件


        Jboss classloader及相关的log4j的配置文件

 

四、JBoss

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值