将JBoss AS 7日志记录扩展到数据库

时间:2011-10-28 18:52:17

标签: jboss7.x slf4j

我们在应用程序中启用了jboss日志记录。目前我们正在使用'Rotating-file-handler'将所有内容记录到文件中。这是在jboss'standalone.xml'文件中定义的。我们正在考虑将一些信息记录到日志记录数据库中;为了建立指标等。

有人可以提供一些我们可以在这里使用的选项。我们的最终目标是将事物写入文件;我们会拦截并将其写入DB。我们不希望在线进行,因为这将是一个阻止呼叫。

2 个答案:

答案 0 :(得分:2)

此链接显示如何设置我想要的内容。 JBoss AS 7.0.1具有支持自定义日志处理程序的功能。

http://community.jboss.org/wiki/CustomLogHandlersOn701

答案 1 :(得分: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>