Syslog

Struct Syslog 

Source
pub struct Syslog {
    pub facility: Facility,
    pub process: Option<String>,
    pub hostname: Option<String>,
    pub level: Level,
    pub proto: SyslogProto,
    pub server: Option<SyslogAddr>,
    pub timeout: Duration,
}
Available on crate feature syslog only.
Expand description

Config for syslog output, supports local and remote server.

The underlayer protocol is implemented by syslog crate, currently Formatter3164 is adapted.

In order to achieve efficient socket I/O, the message is sent to channel, and asynchronous flushed by backend writer.

When your program shutting down, should call flush to ensure the log is written to the socket.

log::logger().flush();

On panic, our panic hook will call flush() explicitly.

On connection, will output “syslog connected” message to stdout.

On remote syslog server failure, will not panic, only “syslog: flush err” message will be print to stderr, the backend thread will automatically reconnect to server. In order to prevent hang up, the message will be dropped after a timeout.

§Example connecting local server

Source of crate::recipe::syslog_local()

use captains_log::*;
pub fn syslog_local(max_level: Level) -> Builder {
    let syslog = Syslog::new(Facility::LOG_USER, max_level);
    return Builder::default().add_sink(syslog);
}

§Example connecting remote server

use captains_log::*;
let syslog = Syslog::new(Facility::LOG_USER, Level::Info).tcp("10.10.0.1:601");
let _ = Builder::default().add_sink(syslog).build();

Fields§

§facility: Facility

Syslog facility

§process: Option<String>

Auto filled current process

§hostname: Option<String>

Auto filled localhost,

§level: Level

max level of message goes to syslog

§proto: SyslogProto

When in doubt, use RFC3164

§server: Option<SyslogAddr>

When None, connect local default unix socket.

§timeout: Duration

Drop msg when syslog server fail after a timeout, also apply to tcp connect timeout.

Implementations§

Source§

impl Syslog

Source

pub fn new(facility: Facility, level: Level) -> Self

Source

pub fn timeout(self, d: Duration) -> Self

Source

pub fn hostname(self, name: String) -> Self

Set hostname if you don’t want the default

Source

pub fn process_name(self, name: String) -> Self

Set process name if you don’t want the default

Source

pub fn unix<P: Into<PathBuf>>(self, p: P) -> Self

Source

pub fn tcp<S: AsRef<str>>(self, remote: S) -> Self

Source

pub fn udp<S: AsRef<str>>(self, local: S, remote: S) -> Self

Trait Implementations§

Source§

impl Default for Syslog

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Hash for Syslog

Source§

fn hash<H: Hasher>(&self, hasher: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl SinkConfigTrait for Syslog

Source§

fn get_level(&self) -> Level

get max log level of the sink
Source§

fn get_file_path(&self) -> Option<Box<Path>>

Only file sink has path
Source§

fn write_hash(&self, hasher: &mut Box<dyn Hasher>)

Calculate hash for config comparison

Auto Trait Implementations§

§

impl Freeze for Syslog

§

impl RefUnwindSafe for Syslog

§

impl Send for Syslog

§

impl Sync for Syslog

§

impl Unpin for Syslog

§

impl UnwindSafe for Syslog

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V