我有一个play-2.2.3应用程序。我想使用GELF-TCP将日志发送到graylog2服务器。我尝试使用me.moocar GELF logback附加程序,但似乎存在问题,因为它是使用其他版本的logback核心jar进行编译的。
我可以配置logback将日志(通过TCP或UDP)发送到其他地方托管的graylog2实例吗?
最佳答案
您可以尝试logstash-gelf。它支持TCP和UDP通道(UDP是非阻塞的)。 logstash-gelf是针对经典经典logback版本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>