Struct AsyncPoolSink

Source
pub struct AsyncPoolSink { /* private fields */ }
Available on crate feature multi-thread only.
Expand description

A combined sink, logging and flushing asynchronously (thread-pool-based).

Expensive operations (such as log and flush) on asynchronous sinks will be performed asynchronously on other threads.

Since there is no waiting, errors that occur while performing asynchronous operations will not be returned to the upper level, and instead the error handler of the sink will be called.

Users should only use asynchronous combined sinks to wrap actual sinks that require a long time for operations (e.g., file sinks that are frequently flushed, sinks involving networks), otherwise they will not get a performance boost or even worse.

Since the thread pool has a capacity limit, the queue may be full in some cases. When users encounter this situation, they have the following options:

§Note

Errors that occur in log and flush will not be returned directly, instead the error handler will be called.

§Examples

See ./examples directory.

Implementations§

Source§

impl AsyncPoolSink

Source

pub fn builder() -> AsyncPoolSinkBuilder

Constructs a builder of AsyncPoolSink with default parameters:

ParameterDefault Value
level_filterAll
error_handlerdefault error handler
overflow_policyBlock
thread_poolinternal shared default thread pool
Source

pub fn sinks(&self) -> &[Arc<dyn Sink>]

Gets a reference to internal sinks in the combined sink.

Source

pub fn set_error_handler(&self, handler: Option<ErrorHandler>)

Sets a error handler.

Trait Implementations§

Source§

impl Sink for AsyncPoolSink

Source§

fn set_formatter(&self, formatter: Box<dyn Formatter>)

For AsyncPoolSink, the function performs the same call to all internal sinks.

Source§

fn log(&self, record: &Record<'_>) -> Result<()>

Logs a record.
Source§

fn flush(&self) -> Result<()>

Flushes any buffered records.
Source§

fn level_filter(&self) -> LevelFilter

Gets the log level filter.
Source§

fn set_level_filter(&self, level_filter: LevelFilter)

Sets the log level filter.
Source§

fn set_error_handler(&self, handler: Option<ErrorHandler>)

Sets a error handler. Read more
Source§

fn should_log(&self, level: Level) -> bool

Determines if a log message with the specified level would be logged.

Auto Trait Implementations§

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.