Trait SyslogApi

Source
pub trait SyslogApi<F: SyslogFormatter, D: SyslogDestination>:
    Debug
    + Send
    + 'static {
    // Required methods
    fn connectlog(&self) -> SyRes<()>;
    fn setlogmask(&self, logmask: i32) -> SyRes<i32>;
    fn closelog(&self) -> SyRes<()>;
    fn syslog(&self, pri: Priority, fmt: F);
    fn change_identity(&self, ident: &str) -> SyRes<()>;
    fn reconnect(&self) -> SyRes<()>;
    fn update_tap_data(&self, tap_data: D) -> SyRes<()>;
}
Expand description

A trait whcih describes common syslog API. The generic D SyslogDestination instance contains the information about the destination and from which the syslog instance should be constructed.

Required Methods§

Source

fn connectlog(&self) -> SyRes<()>

Connects the current instance to the syslog server (destination).

Source

fn setlogmask(&self, logmask: i32) -> SyRes<i32>

Sets the logmask to filter out the syslog calls.

See macroses [LOG_MASK] and [LOG_UPTO] to generate mask

§Example

LOG_MASK!(Priority::LOG_EMERG) | LOG_MASK!(Priority::LOG_ERROR)

or

~(LOG_MASK!(Priority::LOG_INFO)) LOG_UPTO!(Priority::LOG_ERROR)

Source

fn closelog(&self) -> SyRes<()>

Closes connection to the syslog server (destination).

Source

fn syslog(&self, pri: Priority, fmt: F)

Similar to libc, syslog() sends data to syslog server.

§Arguments
  • pri - a priority Priority

  • fmt - a formatter SyslogFormatter message. In C exists a functions with variable argumets amount. In Rust you should create your own macros like format!() or use format!()]. The String and ref 'static str can be passed directly.

Source

fn change_identity(&self, ident: &str) -> SyRes<()>

This function can be used to update the facility name, for example after fork().

§Arguments
  • ident - a new identity (up to 48 UTF8 chars)
Source

fn reconnect(&self) -> SyRes<()>

Re-opens the connection to the syslog server. Can be used to rotate logs(handle SIGHUP).

§Returns

A Result is retured as SyRes.

Source

fn update_tap_data(&self, tap_data: D) -> SyRes<()>

Updates the instance’s socket. tap_data [TapTypeData] should be of the same variant (type) as current.

Implementors§