# Log in log - Rust
A trait encapsulating the operations required of a logger.
Keywords: rust, rustlang, rust-lang, Log

# Trait log::Log

source · [−]

    pub trait Log: Sync + Send {
        fn enabled(&self, metadata: &Metadata<'_>) -> bool;
        fn log(&self, record: &Record<'_>);
        fn flush(&self);
    }

Expand description

A trait encapsulating the operations required of a logger.

## Required methods

source

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

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

This is used by the `log_enabled!` macro to allow callers to avoid expensive computation of log message arguments if the message would be discarded anyway.

##### For implementors

This method isn’t called automatically by the `log!` macros. It’s up to an implementation of the `Log` trait to call `enabled` in its own `log` method implementation to guarantee that filtering is applied.

source

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

Logs the `Record`.

##### For implementors

Note that `enabled` is not necessarily called before this method. Implementations of `log` should perform all necessary filtering internally.

source

#### fn flush(&self)

Flushes any buffered records.

## Implementations on Foreign Types

source

### impl<T> Log for &T where
T: ?Sized + Log,

source

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

source

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

source

#### fn flush(&self)

## Implementors