如何在WildFly

时间:2016-07-08 10:58:55

标签: jboss wildfly syslog

将JBoss 5.1与此appender一起使用时:

<appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
   <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
   <param name="Facility" value="LOCAL7"/>
   <param name="FacilityPrinting" value="true"/>
   <param name="SyslogHost" value="localhost"/>
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
   </layout>
</appender>

我看到日志记录的下一条消息(在EventLog Analyzer中):

local7:[13:32:45,763,SendingPool] Sending pool task executed. Pool size is [0

在WildFly 8.2.1中我有下一个处理程序配置:

    <syslog-handler name="SYSLOG">
        <level name="DEBUG"/>
        <server-address value="localhost"/>
        <facility value="local-use-7"/>
    </syslog-handler>

消息:

1 2016-07-08T13:30:34.943+03:00 - java 910 com.mycompany.component.p - Sending pool task executed. Pool size is [0

如何更改syslog的消息格式?

1 个答案:

答案 0 :(得分:2)

遗憾的是,没有办法使用syslog-handler格式化邮件。这是一个疏忽,当它被创建并且有很长的时间JIRA来解决这个问题。

但是,您可以使用custom-handler并使用格式化程序。

/subsystem=logging/pattern-formatter=syslog-formatter:add(pattern="local7: [%d{hh:mm:ss,SSS},%c{1}] %s")
/subsystem=logging/custom-handler=syslog:add(class=org.jboss.logmanager.handlers.SyslogHandler, module=org.jboss.logmanager, named-formatter=syslog-formatter, properties={hostname="localhost", facility="LOCAL_USE_7", protocol="TCP", useCountingFraming=true})
/subsystem=logging/root-logger=ROOT:add-handler(name=syslog)

请注意,如果您希望打印local7:,则需要将其作为格式的一部分。无法在设施名称前添加消息。

看着:

1 2016-07-08T13:30:34.943+03:00 - java 910 com.mycompany.component.p - Sending pool task executed. Pool size is [0

这看起来像原始消息减去优先级。默认情况下,syslog处理程序将使用RFC 5424格式。如果要使用RFC 3164将syslogType=RFC3163添加到上述自定义处理程序添加操作中的properties属性,请删除useCountingFraming=true。请注意,useCountingFraming=true可能需要删除。这取决于您的系统日志服务器设置。