如何解决JBoss和log4j冲突

解决jboss和log4j冲突的最理想配置如下:

我们提供的服务有:成都网站设计、网站建设、微信公众号开发、网站优化、网站认证、永兴ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的永兴网站制作公司

1.配置$JBOSS-HOME/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml文件里的Java2ClassLoadingCompliance及UseJBossWebLoader为false,如果你的应用下存在WEB-INF/jboss-web.xml,则里面的java2ClassLoadingCompliance及java2ParentDelegaton属性也都设置成false。

2.配置$JBOSS-HOME/server/default/jboss-service.xml中的org.jboss.logging.Log4jService的设置中加个属性:

 
 
 
  1. ﹤attribute name="CatchSystemOut">false﹤/attribute>

即可。

如下:

 
 
 
  1. ﹤mbean code="org.jboss.logging.Log4jService" name="jboss.system:type=Log4jService,service=Logging">
  2. ﹤attribute name="ConfigurationURL">resource:log4j.xml﹤/attribute>
  3. ﹤attribute name="CatchSystemOut">false﹤/attribute>
  4. ﹤attribute name="Log4jQuietMode">true﹤/attribute>
  5. ﹤/mbean>

3.建立一个用于初始化的 InitServlet ,在init方法指定log4j读取我们应用下的的log4j.properties文件,代码如:

 
 
 
  1. public void init(ServletConfig config) throws ServletException { 
  2.     PropertyConfigurator.configure(config.getServletContext().getRealPath("/")
  3. + "WEB-INF/classes/log4j.properties");

然后在 web.xml 配置这个 Servlet 的初始化参数(声明 log4j.properties 的位置)和启动优先级:

 
 
 
  1. ﹤servlet> 
  2.   ﹤servlet-name>InitServlet﹤/servlet-name> 
  3.   ﹤servlet-class>InitServlet﹤/servlet-class> 
  4.   ﹤load-on-startup>1﹤/load-on-startup> 
  5. ﹤/servlet> 

4.把jboss的jboss-common.jar($JBOSS-HOME/lib目录下)复制到你的应用/WEB-INF/lib目录下。

通过这样的配置后,webapp的log4j和jboss的log4j将相互隔离互不影响,在jboss.4.0.5下测试通过,并做的总结。jBoss和log4j的冲突得以解决。

本文名称:如何解决JBoss和log4j冲突
文章分享:http://www.shufengxianlan.com/qtweb/news41/97191.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联