SyncSyslog

Struct SyncSyslog 

Source
pub struct SyncSyslog<F = DefaultSyslogFormatter, D = SyslogLocal>{ /* private fields */ }
Expand description

A sync, shared instance of the syslog client which is shared between threads. Previously a mutex was used, but since the v5.0.0 a CoW experimental approach is used.

For this isntance a SyslogApi and SyStreamApi are implemented.

let log = 
    SyncSyslog::openlog(
        Some("test1"), 
        LogStat::LOG_CONS | LogStat::LOG_NDELAY | LogStat::LOG_PID, 
        LogFacility::LOG_DAEMON,
        SyslogLocal::new()
    );
let log = 
    SyncSyslog
        ::<DefaultSyslogFormatter, SyslogLocal>
        ::openlog_with(
            Some("test1"), 
            LogStat::LOG_CONS | LogStat::LOG_NDELAY | LogStat::LOG_PID, 
            LogFacility::LOG_DAEMON,
            SyslogLocal::new()
        );
pub static SYSLOG3: LazyLock<SyncSyslog<DefaultSyslogFormatter, SyslogLocal,>> = 
    LazyLock::new(|| 
        {
            SyncSyslog
                ::<DefaultSyslogFormatter, SyslogLocal>
                ::openlog_with(
                    Some("test1"), 
                    LogStat::LOG_CONS | LogStat::LOG_NDELAY | LogStat::LOG_PID, 
                    LogFacility::LOG_DAEMON,
                    SyslogLocal::new()
                )
                .unwrap()
        }
    );

A stream is availble via SyStreamApi.

let _ = write!(SYSLOG.stream(Priority::LOG_DEBUG), "test {} 123 stream test ", d);

§Generics

  • F - a SyslogFormatter which sets the instance which would format the message.

  • D - a SyslogDestination instance which is either: SyslogLocal, [SyslogFile], [SyslogNet], [SyslogTls]. By default a SyslogLocal is selected.

Implementations§

Source§

impl SyncSyslog

Source

pub fn openlog( ident: Option<&str>, logstat: LogStat, facility: LogFacility, net_tap_prov: SyslogLocal, ) -> SyRes<Self>

Opens a default connection to the local syslog server with default formatter.

In order to access the syslog API, use the SyslogApi.

§Arguments
  • ident - A program name which will appear on the logs. If none, will be determined automatically.

  • logstat - LogStat an instance config.

  • facility - LogFacility a syslog facility.

  • net_tap_prov - a SyslogLocal instance with configuration.

§Returns

A SyRes is returned (Result) with:

Source§

impl<F: SyslogFormatter, D: SyslogDestination> SyncSyslog<F, D>

Source

pub fn openlog_with( ident: Option<&str>, logstat: LogStat, facility: LogFacility, net_tap_prov: D, ) -> SyRes<Self>

Opens a special connection to the destination syslog server with specific formatter.

All struct generic should be specified before calling this function.

In order to access the syslog API, use the SyslogApi.

§Arguments
  • ident - A program name which will appear on the logs. If none, will be determined automatically.

  • logstat - LogStat an instance config.

  • facility - LogFacility a syslog facility.

  • net_tap_prov - a destination server. A specific D instance which contains infomation about the destination server. See syslog_provider.rs.

§Returns

A SyRes is returned (Result) with:

Trait Implementations§

Source§

impl<F, D> Clone for SyncSyslog<F, D>

Source§

fn clone(&self) -> SyncSyslog<F, D>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<F, D> Debug for SyncSyslog<F, D>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'stream, F: SyslogFormatter, D: SyslogDestination> SyStreamApi<'stream, F, D, SyncSyslog<F, D>> for SyncSyslog<F, D>

Source§

fn stream( &'stream self, pri: Priority, ) -> SyStream<'stream, D, F, SyncSyslog<F, D>>

Creates the temporary structure which holds the Priority and implements std::fmt::Write. A SyStream is returned which can be used directly with write. Read more
Source§

impl<F: SyslogFormatter, D: SyslogDestination> SyslogApi<F, D> for SyncSyslog<F, D>

Source§

fn change_identity(&self, ident: Option<&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 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. Read more
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. Read more
Source§

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

Re-opens the connection to the syslog server. Can be used to rotate logs(handle SIGHUP). Read more
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.
Source§

impl<F: SyslogFormatter, D: SyslogDestination> Send for SyncSyslog<F, D>

Auto Trait Implementations§

§

impl<F, D> Freeze for SyncSyslog<F, D>

§

impl<F, D> RefUnwindSafe for SyncSyslog<F, D>
where F: RefUnwindSafe,

§

impl<F, D> Sync for SyncSyslog<F, D>
where F: Sync, <D as SyslogDestination>::SocketTap: Sync,

§

impl<F, D> Unpin for SyncSyslog<F, D>
where F: Unpin,

§

impl<F, D> UnwindSafe for SyncSyslog<F, D>
where F: UnwindSafe,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.