2011-10-28 22 views
6

我們在應用程序中啓用了jboss日誌記錄。目前我們正在使用「旋轉文件處理程序」將所有內容記錄到文件中。這是在jboss'standalone.xml'文件中定義的。我們正在研究將一些信息記錄到日誌記錄數據庫中;爲建設指標等
將JBoss AS 7日誌擴展到數據庫

有人可以提供一些我們可以在這裏使用的選項。我們的最終目標是將文件寫入文件;我們會攔截並寫入數據庫。我們不想這樣做,因爲這將是一個阻塞呼叫。

回答

0

使用AsyncAppender並將DBAppender附加到它。

像這樣的異步部分:

<async-handler name="ASYNC"> 
    <level name="DEBUG"/> 
    <queue-length value="1024"/> 
    <overflow-action value="BLOCK"/> 
    <subhandlers> 
    <handler name="CONSOLE"/> <!-- if you have these defined --> 
    <handler name="FILE"/> <!-- if you have these defined --> 
    <handler name="DB"/> 
    </subhandlers> 
</async-handler> 

,然後定義DB作爲DBAppender(或JDBCAppender取決於您所安裝的)。

<log4j-appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender"> 
     <error-manager> 
     <only-once/> 
     </error-manager> 

    <level name="INFO"/> 
    <properties> 
     <property name="URL">jdbc:postgresql://localhost:5432/data</property> 
    <property name="driver">org.postgresql.Driver</property> 
    <property name="user">admin</property> 
    <property name="password">admin</property> 
    </properties> 

    <formatter> 
     <pattern-formatter pattern="insert into Log values (current_timestamp,'%c', '%t','%p','%m')" /> 
     </formatter> 
    </log4j-appender> 
+0

請問您能提供一些更多的細節嗎? – shergill

+0

另外它取決於你使用的是什麼版本的JBoss。 –

+0

哪些文件正在進行以下更改? standalone.xml? – shergill