2014-03-13 80 views
1

我該如何配置JBoss日誌系統以使用像 log4j-json這樣的自定義log4j佈局或像 logstash-util-formatter這樣的自定義JUL格式化程序?如何配置JBoss AS 7/EAP 6以登錄JSON格式?

編輯:它看起來像自定義格式是 available in WildFly 8 ,他們是 coming in EAP 6.3

在此期間,我想我有這些選擇其中涉及繞過JBoss的日誌記錄:

  1. 使用每部署日誌記錄配置log4j自己。
  2. 使用jboss-deployment-structure.xml來阻止EAP的日誌庫並使用類似於logback的東西與a JSON encoder like this

無論哪種方式,我只會爲部署本身獲取JSON日誌記錄,而不是數據源和容器啓動。是否有另一個選項可以允許所有日誌記錄爲JSON格式?

回答

1

在JBoss AS 7.x或JBoss EAP 6.2中是不可能的。正如你所說的,儘管它可以在WildFly 8.0.0.Final中作爲custom-formatter使用,並且將在JBoss EAP 6.3中提供。

實際上這是可能的,但是你會失去對日誌配置進行運行時更改的能力。你可能會刪除日誌子系統,並純粹使用logging.properties配置。我可能不會建議,除非你迫切需要使用格式化程序,並且不能等待EAP 6.3或使用WildFly。

+0

嗯,這是另一種選擇。 logging.properties只是一個java.util.logging配置文件? – seanf

+0

去那裏的類名,是的,它是一個JUL配置文件。詹姆斯,謝謝你的回答。 – seanf

+0

這實際上不是JUL的配置。它很相似,但在某些方面更像log4j.properties。 –

2

另一種方法是使用爲GELF帶來本機日誌處理程序的logstash-gelf(https://github.com/mp911de/logstash-gelf)。

這樣,您不需要等待JSON格式器,只需在logstash上配置GELF輸入並抓取記錄器模塊(http://search.maven.org/remotecontent?filepath=biz/paluch/logging/logstash-gelf/1.5.4/logstash-gelf-1.5.4-logging-module.zip)即可。適用於JBoss AS7(EAP6)和WildFly。

JBoss的配置片斷

<custom-handler name="GelfLogger" class="biz.paluch.logging.gelf.jboss7.JBoss7GelfLogHandler" module="biz.paluch.logging"> 
    <level name="INFO" /> 
    <properties> 
     <property name="host" value="udp:localhost" /> 
     <property name="port" value="12201" />  
     <property name="includeFullMdc" value="true" /> 
    </properties> 
</custom-handler>