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§
Sourcefn connectlog(&self) -> SyRes<()>
fn connectlog(&self) -> SyRes<()>
Connects the current instance to the syslog server (destination).
Sourcefn setlogmask(&self, logmask: i32) -> SyRes<i32>
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)
Sourcefn syslog(&self, pri: Priority, fmt: F)
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.
Sourcefn change_identity(&self, ident: &str) -> SyRes<()>
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)
Sourcefn reconnect(&self) -> SyRes<()>
fn reconnect(&self) -> SyRes<()>
Re-opens the connection to the syslog server. Can be used to rotate logs(handle SIGHUP).
§Returns
-
Result::Ok - with empty inner type.
-
Result::Err - an error code and description
Sourcefn update_tap_data(&self, tap_data: D) -> SyRes<()>
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.