Struct slog_async::Async [−][src]
Async drain
Async will send all the logging records to a wrapped drain running in
another thread.
Async never returns AsyncError::Full.
Records are passed to the worker thread through a channel with a bounded
size (see AsyncBuilder::chan_size). On channel overflow Async will
start dropping Records and log a message informing about it after
sending more Records is possible again. The exact details of handling
overflow is implementation defined, might change and should not be relied
on, other than message won’t be dropped as long as channel does not
overflow.
Any messages reported by Async will contain slog-async logging Record
tag to allow easy custom handling.
Note: On drop Async waits for it’s worker-thread to finish (after handling
all previous Records sent to it). If you can’t tolerate the delay, make
sure you drop it eg. in another thread.
Implementations
impl Async[src]
pub fn default<D: Drain<Err = Never, Ok = ()> + Send + 'static>(
drain: D
) -> Self[src]
drain: D
) -> Self
New AsyncCore with default parameters
pub fn new<D: Drain<Err = Never, Ok = ()> + Send + 'static>(
drain: D
) -> AsyncBuilder<D>[src]
drain: D
) -> AsyncBuilder<D>
Build Async drain with custom parameters
The wrapped drain must handle all results (Drain<Ok=(),Error=Never>)
since there’s no way to return it back. See slog::DrainExt::fuse() and
slog::DrainExt::ignore_res() for typical error handling strategies.
Trait Implementations
impl Drain for Async[src]
type Ok = ()
Type returned by this drain Read more
type Err = AsyncError
Type of potential errors that can be returned by this Drain
fn log(
&self,
record: &Record<'_>,
logger_values: &OwnedKVList
) -> AsyncResult<()>[src]
&self,
record: &Record<'_>,
logger_values: &OwnedKVList
) -> AsyncResult<()>
pub fn is_enabled(&self, level: Level) -> bool[src]
pub fn is_critical_enabled(&self) -> bool[src]
pub fn is_error_enabled(&self) -> bool[src]
pub fn is_warning_enabled(&self) -> bool[src]
pub fn is_info_enabled(&self) -> bool[src]
pub fn is_debug_enabled(&self) -> bool[src]
pub fn is_trace_enabled(&self) -> bool[src]
pub fn map<F, R>(self, f: F) -> R where
F: FnOnce(Self) -> R, [src]
F: FnOnce(Self) -> R,
pub fn filter<F>(self, f: F) -> Filter<Self, F> where
F: FilterFn, [src]
F: FilterFn,
pub fn filter_level(self, level: Level) -> LevelFilter<Self>[src]
pub fn map_err<F, E>(self, f: F) -> MapError<Self, E> where
F: MapErrFn<Self::Err, E>, [src]
F: MapErrFn<Self::Err, E>,
pub fn ignore_res(self) -> IgnoreResult<Self>[src]
pub fn fuse(self) -> Fuse<Self> where
Self::Err: Debug, [src]
Self::Err: Debug,
impl Drop for Async[src]
Auto Trait Implementations
impl RefUnwindSafe for Async
impl Send for Async
impl Sync for Async
impl Unpin for Async
impl UnwindSafe for Async
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> SendRefUnwindSafeDrain for T where
T: Drain + Send + RefUnwindSafe + ?Sized, [src]
T: Drain + Send + RefUnwindSafe + ?Sized,
impl<T> SendSyncRefUnwindSafeDrain for T where
T: Drain + Send + Sync + RefUnwindSafe + ?Sized, [src]
T: Drain + Send + Sync + RefUnwindSafe + ?Sized,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized, [src]
T: Send + Sync + UnwindSafe + ?Sized,
impl<T> SendSyncUnwindSafeDrain for T where
T: Drain + Send + Sync + UnwindSafe + ?Sized, [src]
T: Drain + Send + Sync + UnwindSafe + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,