2013-07-22 57 views
0

我一直在嘗試使用記錄我自己的log4j.xml文件,如下建議: https://docs.jboss.org/author/display/AS71/How+To#HowTo-HowdoIuselog4j.propertiesorlog4j.xmlinsteadofusingtheloggingsubsystemconfiguration%3FJBoss作爲7日誌記錄錯誤級別

我做了以下幾件事: - 我創建的jboss-部署 - WEB-INF中的structure.xml文件(因爲我的應用程序是一個WAR文件)和相應的內容; - 我把log4j-1.2.16.jar放在我的構建路徑中; - 在src/main/resources中創建log4j.xml(這是Spring Roo在生成項目時放置文件的位置)。

這樣一來,從我的課我的日誌消息都顯示正常,但的錯誤,冒泡,並通過DispatcherServlet的被捕獲在控制檯DEBUG級別顯示:

12:06:30,668 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-localhost- 
127.0.0.1-8080-3) Handler execution resulted in exception - forwarding to resolved 
error view: ModelAndView: reference to view with name 'uncaughtException'; model is 
{exception=java.lang.NullPointerException}: java.lang.NullPointerException at 
ro.radcom.muzee.bo.impl.JmsServiceImpl.sendMessage(JmsServiceImpl.java:29) [classes:] at 
ro.radcom.muzee.web.HomeController.redirectGet(HomeController.java:56) [classes:] at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_33] at 
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.6.0_33] .... 

在standalone.xml,記錄部分看起來是這樣的:

<subsystem xmlns="urn:jboss:domain:logging:1.1"> 
    <console-handler name="CONSOLE"> 
     <level name="DEBUG"/> 
     <formatter> 
      <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
     </formatter> 
    </console-handler> 
    <logger category="com.arjuna"> 
     <level name="WARN"/> 
    </logger> 
    <logger category="org.apache.tomcat.util.modeler"> 
     <level name="WARN"/> 
    </logger> 
    <logger category="sun.rmi"> 
     <level name="WARN"/> 
    </logger> 
    <logger category="jacorb"> 
     <level name="WARN"/> 
    </logger> 
    <logger category="jacorb.config"> 
     <level name="ERROR"/> 
    </logger> 
    <root-logger> 
     <level name="DEBUG"/> 
     <handlers> 
      <handler name="CONSOLE"/> 
     </handlers> 
    </root-logger> 
</subsystem> 

而且,雖然我的log4j.xml包含此:

<logger name="org.springframework.security"> 
    <level value="info" /> 
</logger> 

控制檯有一些DEBUG級別的日誌,如:

"12:06:30,659 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor]" 
  1. 可能是什麼原因造成的?
  2. 這兩個問題在某些方面是相關的嗎?

    任何幫助,將不勝感激。

    謝謝。

** 應用服務器:JBoss應用服務器7 IDE:SpringSource的工具套件

+0

到底是什麼問題呢?它看起來像春天調試消息記錄,你有控制檯和根記錄器設置級別的調試。 –

+0

是的,我設置了根記錄級別調試註冊的所有日誌用於DEBUG,INFO,WARN,錯誤。這就是它的工作原理,對吧?那麼,第一個日誌示例是一個錯誤,但它顯示爲一個DEBUG,並且最後一個日誌示例是一個DEBUG,儘管我專門爲org.springframework.security設置了INFO級別。感謝您的回覆 :) –

回答

0

從記錄子系統角度看,它看起來像一切工作,因爲它應該。 Spring正在打印DEBUG消息,並且您已將根記錄器設置爲打印它們以及控制檯處理程序。

您的示例消息看起來像他們正在使用日誌子系統中的格式。我不確定您的log4j.xml配置文件中是否定義了格式,但我的猜測是您的配置文件未找到或使用。

使用自己的log4j配置的關鍵是:

  • 確保您不包括服務器的log4j庫(看起來,你是與jboss-deployment-structure.xml
  • 確保您包括您的部署中的log4j的庫
  • 確保log4j的配置文件是可見的log4j在部署