如何在play 2.2.3中使用GELF appender?

3

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

我能否配置logback将日志(通过TCP或UDP)发送到托管在其他地方的graylog2实例?

1个回答

2
您可以尝试使用 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>

感谢您的回答。就在昨天,我使用了Moocar Gelf Appender https://github.com/Moocar/logback-gelf,它具有与您提到的相似的配置。现在它可以正常工作了。 - Farhad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接