2012-03-19 224 views
5

我在JBoss AS7和日誌記錄方面掙扎了一番。儘管事實上我的問題是非常普遍的,但我無法在網絡上找到任何相關信息。JBoss AS 7:日誌記錄

目前默認的日誌看起來是這樣的:

11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - I/O exception (java.net.SocketException) caught when processing request: Connection reset 
11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - Retrying request 

通知[標準輸出],那些書面線由所使用的一些庫和JBoss的回升,並寫入一些日誌庫粗壯日誌文件。這是我想要解決的問題。

我想必須有一個方法來讓一個適配器告訴log4j(或任何其他日誌框架)登錄到jboss日誌子系統?

我的第一個想法是從我的項目的類路徑中刪除所有log4j配置。我在我使用的庫中找到了一個記錄到stdout的庫。但是這並沒有解決任何問題。

11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment). 
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN Please initialize the log4j system properly. 
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

未配置appender時的常見錯誤消息。至少我可以確定,類路徑中不再有配置。

JBoss AS文檔甚至沒有提到這種情況,當我無法獲得正確的日誌記錄時,我該如何使用第三方庫?

我真的很希望有人能幫助我,任何暗示都會感激!

馬拉克斯

回答

14

雖然它不是在一個問題,我假設你正在嘗試使用log4j的與JBoss AS7。如果這是真的,並且您確實需要使用appender,那麼您需要排除服務器隨附的log4j,並將您自己的版本與您的部署打包在一起。一旦AS7-514解決,這應該很快就會改變。一旦添加了該功能,您就不需要做任何事情。

要解決的問題,因爲現在你首先需要創建一個jboss-deployment-structure.xml看起來應該像下面的是:

<jboss-deployment-structure> 
    <deployment> 
     <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> 
     <exclusions> 
      <module name="org.apache.log4j" /> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

然後加上自己的log4j的版本到你WEB-INF/lib目錄或其他任何地方部署會能夠找到圖書館。

之後,它應該像你期望的那樣工作。

+0

不幸的是,由於某些原因,這對我不起作用。我將XML固定爲格式良好(文檔中稱是排除項的父元素),但它仍然獲得包裝日誌消息,例如:'09:58:04,564 INFO [stdout](http-localhost- 127.0.0.1-8080-1)2012-03-22 09:58:04,564 DEBUG [http-localhost-127.0.0.1-8080-1] org.apache.http.wire:<< " [\ n]「' – Malax 2012-03-22 09:10:53

+0

The消息將被包裹在控制檯上JBoss AS 7將所有消息記錄到stdout和stderr並記錄它們 – 2012-03-22 16:39:17

+0

很好用!感謝您的信息。 – Dima 2012-04-19 13:47:31