Gelfclient
GELF client library for Java based on Netty 4
Install / Use
/learn @Graylog2/GelfclientREADME
GELF Client
A Java GELF client library with support for different transports.
Available transports:
- TCP
- UDP
All default transport implementations use a queue to send messages in a
background thread to avoid blocking the calling thread until a message has
been sent. That means that the send() and trySend() methods do not
actually send the messages but add them to a queue where the background
thread will pick them up. This is important to keep in mind when it comes to
message delivery guarantees.
The library uses Netty v4 to handle all network related tasks and Jackson for JSON encoding.
Usage
Maven Dependency
<dependency>
<groupId>org.graylog2</groupId>
<artifactId>gelfclient</artifactId>
<version>1.5.1</version>
</dependency>
Example
public class Application {
public static void main(String[] args) {
final GelfConfiguration config = new GelfConfiguration(new InetSocketAddress("example.com", 12201))
.transport(GelfTransports.UDP)
.queueSize(512)
.connectTimeout(5000)
.reconnectDelay(1000)
.tcpNoDelay(true)
.sendBufferSize(32768);
final GelfTransport transport = GelfTransports.create(config);
final GelfMessageBuilder builder = new GelfMessageBuilder("", "example.com")
.level(GelfMessageLevel.INFO)
.additionalField("_foo", "bar");
boolean blocking = false;
for (int i = 0; i < 100; i++) {
final GelfMessage message = builder.message("This is message #" + i)
.additionalField("_count", i)
.build();
if (blocking) {
// Blocks until there is capacity in the queue
transport.send(message);
} else {
// Returns false if there isn't enough room in the queue
boolean enqueued = transport.trySend(message);
}
}
}
}
Contributing
Please see CONTRIBUTING for details.
License
Apache License, Version 2.0 -- http://www.apache.org/licenses/LICENSE-2.0
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
