2011-10-28 25 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