【发布时间】:2015-01-06 23:30:10
【问题描述】:
我需要让我的 Java 应用程序将日志记录写入 Graylog2 服务器。 该应用程序使用 log4j 配置。 我尝试将日志写入 Graylog2 服务器的几件事,我正在做的事情是将测试消息直接发送到服务器,如 here 所示(第一个示例)。
然而,当我编写附加程序并将其附加到根记录器时,我总是在第一次触发日志事件时收到此错误消息:
log4j:ERROR 无法发送 GELF 消息
然后在 Graylog2 服务器端什么都不会发生。
我尝试使用的附加程序:
<appender name="graylog2" class="org.graylog2.log.GelfAppender">
<param name="graylogHost" value="127.0.0.1"/>
<param name="originHost" value="my.machine.example.com"/>
<param name="extractStacktrace" value="true"/>
<param name="addExtendedInformation" value="true"/>
<param name="facility" value="gelf-java"/>
<param name="Threshold" value="INFO"/>
<param name="additionalFields" value="{'environment': 'DEV', 'application': 'MyAPP'}"/>
</appender>
有人知道如何让它运行吗?
非常感谢任何帮助!
【问题讨论】:
-
这可能有两个原因:您的日志消息为空,您的机器或防火墙/GELF 服务未运行。您发布的代码使用 UDP。使用 netstat -an 检查您的 GELF 端口是否打开。
-
如果两个条件都满足会发生什么。我可以使用音色库发送 UDP 数据包,但 org.graylog2.log.GelfAppender 不发送任何内容。我的配置和上面类似,根级别设置为INFO。我正在使用 Clojure 和
env/dev/resources中的 logback.xml 文件。我不知道为什么 GELF 的端口没有流量,但音色库有流量。它也在默默地失败。我不知道在哪里可以找到日志。我正在使用 IntelliJ。有什么想法吗?
标签: java logging log4j graylog2