我心依然

          統計

          留言簿

          個人收藏

          閱讀排行榜

          評論排行榜

          關于JBOSS與LOG4J,受益匪淺

          ??????? 不同的服務器對于使用log4j是有些不同的,實際使用中主要是用tomcat和jboss兩類,對于tomcat,它本身是沒有配置log4j的,所以使用起來和常規的一樣;而在jboss中它是本身配置了log4j的,所以有時候在看項目代碼時,其整個項目并沒有log4j的配置文件,而在一些類中仍然定義了Logger,例如static Logger log = org.apache.log4j.Logger.getLogger(UserDaoImple.class);,這就表明開發者打算使用jboss默認的log4j的配置,我們可以在jboss下的對應的log目錄下的server.log中看到日志,jboss本身的log4j的配置是將debug,info級的日志寫在server.log中,而像error等級別比較高的日志打印到控制臺上,而寫到server.log中的日志比較多,并不方便查看。于是我們想到使用自己的log4j配置寫到某個具體的文件中(注意文件要先建立,才能忘里面寫東西,log4j自己不能建立文件),但這里因為jboss有它自己的log4j配置,所以如果我們配置的log4j包含Console的Appender時,就會出錯,錯誤類似于 ERROR: invalid console appender config detected, console stream is looping.
          解決方法一是不用Console的Appender,或者改jboss的配置文件,在jboss-service.xml文件里,把
          <mbean code="org.jboss.logging.Log4jService" name="jboss.system:type=Log4jService,service=Logging">
          ????????<attribute name="ConfigurationURL">resource:log4j.xml</attribute>
          ????????<attribute name="CatchSystemOut">false</attribute>
          ????????<attribute name="Log4jQuietMode">true</attribute>
          </mbean>。

          我建議不用Console的Appender,當然這是對jboss3.2.x是這樣,對于jboss4.0.x如果我們要用自己的log4j配置照上述改還是會有問題,會有類似于 log4j:ERROR A "org.jboss.logging.util.OnlyOnceErrorHandler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" variable 的異常,解決方法是把/server/default/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 中的以下兩個熟悉改成true
          <attribute name="Java2ClassLoadingCompliance">true</attribute>
          <attribute name="UseJBossWebLoader">true</attribute>

          以上就是使用jboss服務器可能出現的問題,解決了這些再來使用log4j就比較簡單了。

          posted on 2006-11-28 22:54 Jerry Zhang 閱讀(919) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巴楚县| 威海市| 瑞金市| 三门峡市| 永寿县| 德昌县| 双鸭山市| 泸溪县| 青神县| 叶城县| 南木林县| 高邑县| 九台市| 松阳县| 苏尼特左旗| 临夏县| 铅山县| 德惠市| 阿克苏市| 青海省| 赤水市| 穆棱市| 昭苏县| 涪陵区| 武夷山市| 台湾省| 广德县| 汾阳市| 苍溪县| 永丰县| 保山市| 德兴市| 合江县| 永靖县| 新民市| 乐陵市| 无棣县| 宜城市| 沾化县| 常德市| 从江县|