我為你狂
          為你而瘋狂
          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 小虎(年輕) 閱讀(2504) 評論(0)  編輯  收藏 所屬分類: STRUTS
          主站蜘蛛池模板: 堆龙德庆县| 福安市| 图们市| 安远县| 板桥市| 大足县| 固安县| 石柱| 广元市| 乌苏市| 东台市| 江北区| 永平县| 宣武区| 乌拉特后旗| 溆浦县| 茂名市| 遂宁市| 当阳市| 灵宝市| 上虞市| 南和县| 汉中市| 平江县| 贵溪市| 岫岩| 双流县| 金乡县| 伊吾县| 平顶山市| 桦甸市| 冕宁县| 永宁县| 玉环县| 平乐县| 都江堰市| 丰台区| 安平县| 宣武区| 永和县| 翼城县|