Module log

Source
Expand description

A lightweight logging facade for Rust.


log provides a single logging API that abstracts over the actual logging implementation. Libraries can use the logging API provided by this crate, and the executable can choose the logging implementation that is most suitable for its use case.

The log crate provides macros for logging at various levels: error!, warn!, info!, debug!, and trace!, where error! represents the highest priority and trace! the lowest.

The logging facade itself doesn’t perform any logging; it needs to be paired with a logging implementation like env_logger, simplelog, fern, or tracing-subscriber. The implementation is responsible for filtering log messages, formatting them, and outputting them to the appropriate destination.

§Examples

use log::{debug, error, info, trace, warn};

fn main() {
    env_logger::init();

    process_data(42);
}

fn process_data(value: i32) {
    trace!("Starting data processing");
    debug!("Processing value: {}", value);

    if value < 0 {
        error!("Invalid value: {}", value);
        return;
    }

    if value == 0 {
        warn!("Processing zero value");
    }

    info!("Successfully processed value: {}", value);
}

Macros§

debug
Logs a message at the debug level.
error
Logs a message at the error level.
info
Logs a message at the info level.
log
The standard logging macro.
log_enabled
Determines if a message logged at the specified level in that module will be logged.
trace
Logs a message at the trace level.
warn
Logs a message at the warn level.

Structs§

Metadata
Metadata about a log message.
MetadataBuilder
Builder for Metadata.
ParseLevelError
The type returned by from_str when the string doesn’t match any of the log levels.
Record
The “payload” of a log message.
RecordBuilder
Builder for Record.
SetLoggerError
The type returned by set_logger if set_logger has already been called.

Enums§

Level
An enum representing the available verbosity levels of the logger.
LevelFilter
An enum representing the available verbosity level filters of the logger.

Constants§

STATIC_MAX_LEVEL
The statically resolved maximum log level.

Traits§

Log
A trait encapsulating the operations required of a logger.

Functions§

logger
Returns a reference to the logger.
max_level
Returns the current maximum log level.
set_boxed_logger
Sets the global logger to a Box<Log>.
set_logger
Sets the global logger to a &'static Log.
set_logger_racy
A thread-unsafe version of set_logger.
set_max_level
Sets the global maximum log level.
set_max_level_racy
A thread-unsafe version of set_max_level.