如何在 play 2.2.3 中使用 GELF appender?

How can I use a GELF appender with play 2.2.3?

我有一个 play-2.2.3 应用程序。我想使用 GELF-TCP 将日志发送到 graylog2 服务器。我试过使用 me.moocar GELF logback appender,但似乎有问题,因为它是用其他版本的 logback 核心 jar 编译的。

我可以配置 logback 以将日志(通过 TCP 或 UDP)发送到别处托管的 graylog2 实例吗?

您可以 logstash-gelf 试一试。它支持 TCP 和 UDP 通道(UDP 是非阻塞的)。 logstash-gelf 是针对 logback-classic 版本 1.0.13 编译的。

示例配置:

<!DOCTYPE configuration>

<configuration>
    <contextName>test</contextName>
    <jmxConfigurator/>

    <appender name="gelf" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
        <host>udp:localhost</host>
        <port>12201</port>
        <version>1.1</version>
        <facility>java-test</facility>
        <extractStackTrace>true</extractStackTrace>
        <filterStackTrace>true</filterStackTrace>
        <mdcProfiling>true</mdcProfiling>
        <timestampPattern>yyyy-MM-dd HH:mm:ss,SSSS</timestampPattern>
        <maximumMessageSize>8192</maximumMessageSize>

        <!-- This are static fields -->
        <additionalFields>fieldName1=fieldValue1,fieldName2=fieldValue2</additionalFields>

        <!-- This are fields using MDC -->
        <mdcFields>mdcField1,mdcField2</mdcFields>
        <dynamicMdcFields>mdc.*,(mdc|MDC)fields</dynamicMdcFields>
        <includeFullMdc>true</includeFullMdc>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="gelf" />
    </root>
</configuration>