2011-10-20 83 views
3

登錄我想用SLF4J +的logback用於登錄的JBossAS7。的JBoss AS7:用的logback

Additionaly我必須解決以下要求:

  • 我需要將多個部署的應用程序中共享一個的logback配置/上下文/ EAR的
  • 我需要改變運行時的logback配置,而無需重新部署/耳朵重啓
  • 化妝(儘可能)登錄我的日誌配置內部可見JBoss服務器的條目(例如部署日誌等)

我現在知道的是,JBoss使用自己的日誌記錄層。由於架構原因,我不能使用它。我只想堅持SLF4J作爲Logging-API和Logback框架。

我會很高興得到一些提示,這可以如何解決。

問候,

拉爾斯

+0

如果你可以放鬆你的日誌配置中的jboss服務器日誌條目的要求,這是微不足道的,並且效果很好。這是最難的部分。 – eis

回答

1

拉斯, 我能想到的要做到這一點是寫一個自定義的處理器的唯一方法。雖然它不是此刻非常有據可查的,你可以創建自定義java.util.logging.Handler中的。你可以在logback的配置周圍編寫一個包裝器。我認爲他們有一個BasicConfigurator或類似的東西。

您註冊一個自定義處理程序,像這樣:

<custom-handler name="logbackHandler" class="org.jboss.LogbackHandler" module="org.jboss.logback"> 
    <level name="DEBUG"/> 
    <properties> 
     <property name="nameOfASetterMethod" value="the value to set" /> 
    </properties> 
</custom-handler> 

<root-logger> 
    <level name="INFO"/> 
    <handlers> 
     <handler name="CONSOLE"/> 
     <handler name="FILE"/> 
     <handler name="logbackHandler"/> 
    </handlers> 
</root-logger> 

也就是說有可能是沒有真正的需要做到這一點。即使您通過不同的外觀登錄,應用程序服務器記錄器也會記錄消息。如果要寫入自己的文件,可以設置不同的文件處理程序。

我認識到在JBoss AS7中登錄可以真正使用一些更好的文檔。我計劃在更新時找到時間:-)我真的只需要花時間。

+0

這樣我將緊裹測井門面,這是由在JBoss層包裹?聽起來有些不可思議...... 有沒有辦法來取代簡單的SLF4J +的logback JBoss的層?我需要控制來自我的應用程序的日誌記錄。我想創建一個模塊來聲明它的依賴關係,但slf4j首先由AS使用,所以綁定到logback不會發生? – reschifl

+0

@reschifl在JBoss AS7中替換日誌記錄的唯一方法是重寫每個子系統中的所有日誌記錄:-) 我們將介紹每個部署日誌記錄功能,https://issues.jboss.org/browse/ AS7-514。看來你現在的主要問題是你想要AS7允許的一點配置,如果你使用standalone.xml或domain.xml配置。這並不意味着你需要使用JBoss Logging。 –

1

我很確定您可以在JBoss中爲您自己的應用程序使用slf4j + logback並完全繞過它的日誌記錄。 JBoss會繼續自己所有的日誌信息記錄到自己的日誌,但你的軟件將無法連接到JBoss的日誌記錄所有,並有自己的日誌。我在JBoss 6下試過這個;我們還沒有嘗試JBoss 7,所以事情可能會有所不同,但我懷疑它。只要確保slf4j和logback jar都在您的應用程序的類路徑中,並且您應該很好。

如果您通過可用的系統屬性進行搜索,您會發現一些jboss。*屬性,這些屬性可能在您的logback配置中用於查找放置日誌文件的位置。

個人而言,我希望JBoss會切換到使用slf4j。