2014年5月4日 星期日

JBOSS - 使用log4j失敗問題..

參考:Use my log4j under jboss 6

自從昨天移到JBOSS上後又發生怪問題...就是log問題。

因為客戶需求有各種不同的log,因此我利用點空閑時間將原本的log拆出區分為多個logger,
但怪問題發生了:

logger會時好時壞!!??

以下為我的log4j.properties:


log4j.rootLogger=DEBUG,total

log4j.appender.total=org.apache.log4j.FileAppender
log4j.logger.com.xxxx.mi.web.servlet.query=DEBUG,AOPLOG
log4j.logger.com.xxxx.mi.web.esb.util=DEBUG,AESBLOG
log4j.logger.com.xxxx.mi.web.omicard=DEBUG,AOMICARDLOG
log4j.logger.com.xxxx.mi.web.sql.mybatis=TRACE,ADBLOG


所謂的時好時壞就是,rootLogger一定是正常的,然而我其他定義的logger(如上com.xxxx.mi.web.servlet,logger.com.xxxx.mi.web.esb.util..這些),有時正常有時卻無法正確記錄,而且每次重啟jboss後正常或不正常的logger都不一定,
一開始以為是我的log4j.properties有問題,然而嘗試了半天實在找不到錯誤...後來看到以上參考網站,試者在tomcat上使用...果然tomcat一切正常,就只有jboss不正常。

後來找了些文章,好像jboss本身有自帶log,因此會衝突(?),先依照參考網站解決方式如下:


  1. 在META-INF下新增jboss-deployment-structure.xml,內容如下:

  2. 
      
        
            
            
        
      
    
    
  3. 更改JBOSS的設定:更改${JBOSS_HOME}/bin/standalone.bat(這裡使用win) 新增啟動參數-Dorg.jboss.as.logging.per-deployment=false:
    先找到以下這段:
    rem Setup JBoss specific properties 
    set "JAVA_OPTS=-Dprogram.name=%PROGNAME% %JAVA_OPTS% "
    


    更改為:
    rem Setup JBoss specific properties 
    set "JAVA_OPTS=-Dprogram.name=%PROGNAME% %JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false"
    
  4. 重新啟動jboss,如果先前log4j的其餘部分沒有問題,應該就可以正常運作囉~~
這問題搞了我一天多....進度又整個延宕.............!@&^^$!@$@#

沒有留言:

張貼留言