JBoss AS 7:登录到远程主机(logstash)

时间:2014-01-20 15:56:54

标签: java logging jboss jboss7.x logstash

虽然配置log4j以将日志发送到远程主机(log4j: How to use SocketAppender?)似乎很容易,但我在JBoss'(7.1.1)standalone.xml上找不到任何相同的方法。

我找到了一种替换JBOss配置以严格使用自己的log4j(JBoss AS 7: Logging)的方法,但是日志级别的远程切换将会丢失 - 对于实时系统,这是不可取的。

2 个答案:

答案 0 :(得分:1)

或者,您可以使用logstash-gelf将日志消息发送到logstash(使用GELF)。在自定义字段/ MDC数据方面,您更灵活。您需要一个额外的模块才能使其正常工作:http://search.maven.org/#artifactdetails%7Cbiz.paluch.logging%7Clogstash-gelf%7C1.3.2%7Cjar

        <custom-handler name="GelfLogger" class="biz.paluch.logging.gelf.jboss7.JBoss7GelfLogHandler" module="biz.paluch.logging">
            <level name="INFO"/>
            <properties>
                <property name="graylogHost" value="somehost"/>
                <property name="extractStackTrace" value="true"/>
                <property name="filterStackTrace" value="true"/>
                <property name="mdcProfiling" value="true"/>
                <property name="facility" value="JBoss Core"/>
                <property name="additionalFields" value="Environment=AT"/>
                <property name="mdcFields" value="Application,App.Version,remoteAddr,remoteUser,sessionId,requestUri,requestMethod,requestParams,Tracking.RootUser,Tracking.RootSessionId,Tracking.RootRequestId,WS.last.Request,WS.last.Response,WS.last.Endpoint"/>
            </properties>
        </custom-handler>

答案 1 :(得分:0)

如果更新到7.2是一个选项,你可以使用jboss中的syslog-handler作为7.2,我在生产中使用它,效果很好。 看看https://docs.jboss.org/author/display/AS72/Logging+Configuration

看起来像:

            <syslog-handler name="SYSLOG">
                <level name="INFO"/>
                <hostname value="${jboss.bind.address}"/>
                <app-name value="JbossAS7"/>
                <server-address value="1.2.3.4"/>
            </syslog-handler>

符合RFC-5424和RFC-3164,因为您可以在其中配置设施。