我為你狂
          為你而瘋狂
          posts - 29,comments - 9,trackbacks - 0

          ??? 不同的服務器對于使用 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 2007-03-07 21:35 小虎(年輕) 閱讀(2498) 評論(0)  編輯  收藏 所屬分類: STRUTS
          主站蜘蛛池模板: 靖边县| 达日县| 鲜城| 婺源县| 山东省| 大连市| 赤水市| 万全县| 苍溪县| 凤阳县| 曲松县| 和田县| 北票市| 休宁县| 乐陵市| 安宁市| 洱源县| 得荣县| 田东县| 纳雍县| 略阳县| 廉江市| 永定县| 双鸭山市| 剑川县| 林口县| 福鼎市| 吴堡县| 聊城市| 景谷| 阳东县| 历史| 元阳县| 通化市| 张家界市| 长宁区| 石城县| 宁陵县| 苍梧县| 定边县| 昌宁县|