我需要让我的Java应用程序将日志记录写入Graylog2服务器。 该应用程序使用log4j配置。 我试图将日志记录写入Graylog2服务器的几件事情,我工作的东西是直接向服务器发送测试消息,如here所示(第一个例子)。
然而,当我编写一个appender并将其附加到根记录器时,我总是在第一次触发日志事件时收到此错误消息:
log4j:错误无法发送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>
有没有人知道如何让这个运行? 任何帮助都非常感谢!
答案 0 :(得分:4)
这项工作对我有用:
在maven pom文件中添加此依赖项
<dependency>
<groupId>org.graylog2</groupId>
<artifactId>gelfj</artifactId>
<version>1.1.13</version>
</dependency>
以及log4j.properties中的这些行
# Define the graylog2 destination
log4j.appender.graylog2=org.graylog2.log.GelfAppender
log4j.appender.graylog2.graylogHost=192.168.243.23
log4j.appender.graylog2.port=12201
log4j.appender.graylog2.originHost=loggenerator-server-ip
log4j.appender.graylog2.layout=org.apache.log4j.PatternLayout
log4j.appender.graylog2.additionalFields={'environment': 'DEV', 'application': 'MyAPP'}
log4j.appender.graylog2.extractStacktrace=true
log4j.appender.graylog2.addExtendedInformation=true
log4j.appender.graylog2.facility=gelfappender-test
答案 1 :(得分:1)
通过java代码,我添加了GelfAppender
,甚至我得到了同样的错误:
log4j:ERROR Could not send GELF message
我找到错误的原因是我没有调用
activateOptions();
此函数将设置我们使用
初始化的gelfSenderprivate GelfSender gelfSender;
将gelfSender
设置为摘要后,可以将邮件发送到GELF
。
以下是我过去获取GelfAppender
GelfAppender appender = new GelfAppender();
appender.setName("GrayLogAppender");
appender.setGraylogHost("localhost");
appender.setGraylogPort(12201);
appender.setFacility("gelf-java");
appender.setOriginHost("localhost");
appender.setLayout(lyt);
appender.setExtractStacktrace(true);
appender.setAddExtendedInformation(true);
appender.setAdditionalFields("{'environment': 'DEV', 'application':'MyAPP'}");
appender.activateOptions();
答案 2 :(得分:0)
查看catalina.out
(通常位于tomcat/logs
下),了解与Gelf相关的错误消息