logfence-client
Client library for sending structured syslog messages to a logfenced daemon or directly to rsyslog via Unix domain sockets.
Part of the logfence project.
Features
MessageBuilder-- fluent API for constructing RFC 5424 syslog messages with JSON key-value payloadsUnixTransport-- stream transport with RFC 6587 octet-count framing, for logfenced or rsyslogimuxsockstream inputUnixDatagramTransport-- datagram transport (one message per datagram), for rsyslogimuxsockdatagram input or logfencedunix_dgrammode- Automatic retry with exponential backoff on datagram buffer-full errors
- Lazy connection establishment with automatic reconnect after I/O errors
- MITRE CEE cookie (
@cee:) support viacee_cookie()onMessageBuilder
Usage
[]
= "0.1"
= "0.1"
Stream transport (logfenced or rsyslog)
use ;
use ;
async
Datagram transport (rsyslog or logfenced)
use ;
use ;
async
Datagram retry configuration
By default the datagram transport retries up to 4 times with exponential
backoff (100 us, 200 us, 400 us, ...) when the receiver's socket buffer is
full. Override with max_attempts:
# use UnixDatagramTransport;
let transport = new
.max_attempts; // retry indefinitely
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.