pub struct ParallelLogger { /* private fields */ }
Expand description

A log::Log implementation that executes all logging on a separate thread.

Simply pass the actual loggers in the call to ParallelLogger::init.

Implementations§

source§

impl ParallelLogger

source

pub fn init(log_level: LevelFilter, actual_loggers: Vec<Box<dyn Log>>)

Initializes the ParallelLogger.

This function sets up a new ParallelLogger with the specified log level and the actual loggers. It starts a new logging thread that listens for log messages on a channel. The ParallelLogger is then set as the global logger for the log crate.

§Arguments
  • log_level - The maximum log level that the logger will handle. Log messages with a level higher than this will be ignored. This will also apply to the actual loggers even though those might have a higher log level set in their configs.
  • actual_loggers - The actual loggers that the ParallelLogger will forward log messages to.
§Panics

If another logger was already set for the log crate, or if no actual logger was provided, this function panics.

Trait Implementations§

source§

impl Debug for ParallelLogger

source§

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

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

impl Drop for ParallelLogger

source§

fn drop(&mut self)

Sends a shutdown signal to the started thread and waits for the thread to finish processing all log messages still in the queue.

source§

impl Log for ParallelLogger

source§

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

Forwards the log call to the actual loggers

source§

fn flush(&self)

Forwards the flush call to the actual loggers

source§

fn enabled(&self, metadata: &Metadata<'_>) -> bool

Determines if a log message with the specified metadata would be logged. Read more

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.