问题描述
我需要将我的Java应用程序写入记录到GrayLog2服务器. 该应用程序使用Log4J配置. 我试图将记录写入到GrayLog2服务器上的几件事,我工作的东西是直接向服务器发送测试消息,如所示此处(第一个示例).
然而,当我编写一个appender并将其附加到根记录器上时,我总是会收到此错误消息,这是第一次要发射日志事件:
log4j:错误无法发送gelf消息
我试图工作的appender:
<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>
有人知道如何运行这个吗?
任何帮助都非常感谢!
推荐答案
这项工作工作:
在您的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
其他推荐答案
通过Java代码,我附加了GelfAppender,甚至我遇到的错误与:
log4j:ERROR Could not send GELF message
我发现错误的原因是我没有调用
activateOptions();
此功能将设置我们使用
进行INTIAL的GELFSENERprivate 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();
其他推荐答案
查看catalina.out(通常位于tomcat/logs下)查看与GELF
有关的错误消息问题描述
I need to get my Java application writing logging to a Graylog2 server. The application uses a log4j configuration. Several things I have tried to get the logging writing to the Graylog2 server, the things I got working was sending a test message directly to the server, as shown here (first example).
Yet, when I write an appender and attach it to the root logger, I always get this error message the first time a log event is to be fired:
log4j:ERROR Could not send GELF message
Nothing then happens on the Graylog2 server side.
The appender I try to get working:
<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>
Does anyone have an idea how to get this running?
Any help is highly appreciated!
推荐答案
This work work me:
add this dependency in your maven pom file
<dependency> <groupId>org.graylog2</groupId> <artifactId>gelfj</artifactId> <version>1.1.13</version> </dependency>
and these lines in your 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
其他推荐答案
Through java code I appended the GelfAppender and even I was getting the same error as:
log4j:ERROR Could not send GELF message
The reason I found for the error is that I was not calling the
activateOptions();
This function will set the gelfSender which we had intialized using
private GelfSender gelfSender;
Once the gelfSender is set to sumthing the message can be sent to GELF.
here is the code how I used to get the 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();
其他推荐答案
Look in catalina.out (usually located under tomcat/logs) for error messages related to Gelf