sandra-thieme / logback-gelf-appender Goto Github PK
View Code? Open in Web Editor NEWLogback appender that sends GELF messages
License: Apache License 2.0
Logback appender that sends GELF messages
License: Apache License 2.0
I'm using your appender and it works very well. Now, I would like to truncate very long messages so I would like to set a custom layout
. The README says it's possible to set it but I'm not able to make it working :(
<appender name="GRAYLOG" class="de.appelgriepsch.logback.GelfAppender">
<server>my-server</server>
<port>12201</port>
<protocol>UDP</protocol>
<includeLevelName>true</includeLevelName>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%.255msg</pattern>
</layout>
</appender>
Could you please update the README to contain how to setup custom layout
correctly? It would be very useful for me. Thanks!
Hello,
can you please release a new version with updated gelfclient?
The latest released version has this two vulnerability:
✗ Medium severity vulnerability found on com.fasterxml.jackson.core:[email protected]
- desc: Denial of Service (DoS)
- from: de.appelgriepsch.logback:[email protected] > org.graylog2:[email protected] > com.fasterxml.jackson.core:[email protected]
✗ Medium severity vulnerability found on io.netty:[email protected]
- desc: Insecure Defaults
- from: de.appelgriepsch.logback:[email protected] > org.graylog2:[email protected] > io.netty:[email protected]
Thank you.
Best Regards,
Matteo
The read me about layout says
The Layout to use to format the LogEvent; the resulting string will be used as GELF's short_message (exception stacktraces are not included in this message)
Problem is the full message is not sent (It is only sent if fullstack trace is on and there is an exception).
I would like the full message to always be sent...
It's a fairly trivial change
If the host name is not supplied then the host name is resolved once per log message, which is an expensive syscall. This PR changes the behavior to resolve the host name once before the appender starts. This increased throughput by 15% for my benchmarks.
I would like to pass a list of the active spring profiles via additional fields, but since there's a comma it does not work correctly.
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<springProperty scope="context" name="name" source="spring.application.name"/>
<springProperty scope="context" name="profiles" source="spring.profiles.active" defaultValue="default"/>
<appender name="gelf" class="de.appelgriepsch.logback.GelfAppender">
<server>192.168.1.113</server>
<includeSource>true</includeSource>
<includeMDC>true</includeMDC>
<includeLevelName>true</includeLevelName>
<additionalFields>profiles=${profiles},name=${name}</additionalFields>
</appender>
<root>
<appender-ref ref="gelf"/>
</root>
</configuration>
I would love to be able to check (in code) whether communication with the graylog server is working. I could then add that check to a series of other status checks I use for a status URL. Then the load balancer and system monitoring tools can tell whether logging with GELF isn't working.
I've looked through the current source code and also the source code for org.graylog2:gelfclient:1.3.1, but so far haven't seen anything that might help.
A new version of the gelf client is now available with a minor performance improvement
With version 1.2.1, if I add <includeThreadContext>true</includeThreadContext>
to my logback configuration in a SpringBoot application, the application does not start with the following exception. Everything works if I take that configuration out. I don't have this problem with 1.2.
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@18:31 - no applicable action for [includeThreadContext], current ElementPath is [[configuration][appender][includeThreadContext]]
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:161)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:72)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:50)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:114)
at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:299)
at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:272)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:235)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:208)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:68)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:337)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
I have the following appender configured
<appender name="GELF" class="de.appelgriepsch.logback.GelfAppender">
<server>my_server_dns</server>
<port>12201</port>
<protocol>UDP</protocol>
<includeSource>true</includeSource>
<includeMDC>true</includeMDC>
<includeLevelName>true</includeLevelName>
<queueSize>512</queueSize>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date [%level] from %logger - %message%n%xException</pattern>
</layout>
</appender>
Everything works fine except the message is reported as follows in Graylog:
...[DEBUG] from null - Received blah blah blah...
I am wondering if I am doing something wrong with the %logger as it is reported as "null".
Hello
I'm trying to use this appender for sending GELF logs via UDP. Unfortunately I can't force appender to send statements to Graylog server immediately.
I understand this is done intentionally to buffer output and optimize bandwidth usage, but for testing purposes it is really uncomfortable, because I have to multiple logging statements to make logs appear at Graylog server.
Is there any way to turn immediate sending on ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.