Skip to main content

Crate logfence_client

Crate logfence_client 

Source
Expand description

logfence client library.

Provides a fluent MessageBuilder for constructing RFC 5424 syslog messages with JSON key-value payloads, and transport implementations for delivering them to a running logfenced daemon or directly to rsyslog.

§Quick start

use logfence_client::{MessageBuilder, UnixTransport, UnixDatagramTransport, now_rfc3339};
use logfence_proto::syslog::{Facility, Severity};

// Stream transport (octet-count framing) — for logfenced or rsyslog imuxsock stream.
let transport = UnixTransport::new("/run/logfenced/logfenced.sock", 65536);
// Datagram transport — for rsyslog imuxsock datagram or logfenced unix_dgram mode.
// let transport = UnixDatagramTransport::new("/run/syslog", 65536);

MessageBuilder::new(Facility::Local0, Severity::Info)
    .timestamp(now_rfc3339())
    .hostname("myhost")
    .app_name("myapp")
    .msgid("REQUEST")
    .kv("user_id", 42_u32)?
    .kv("action", "login")?
    .send(&transport)
    .await?;

Re-exports§

pub use builder::now_rfc3339;
pub use builder::MessageBuilder;
pub use error::BuildError;
pub use error::ClientError;
pub use transport::Transport;
pub use transport::UnixDatagramTransport;
pub use transport::UnixTransport;

Modules§

builder
Fluent MessageBuilder for constructing RFC 5424 syslog messages.
error
Error types for the logfence client library.
transport
Transport trait and implementations for delivering syslog messages.