Crate log_mdc [] [src]

A mapped diagnostic context (MDC) for use with the log crate.

An MDC is a thread local map of strings used to make relevant information from a system available in its log messages. Logging crates such as log4rs will retrieve values from the MDC for output.

For example, a web server may process many requests simultaneously on different threads. Generating an ID for each request and storing it in the MDC makes it easy to partition log messages on a per-request basis.

Examples

Forwarding the contents of the MDC to a new thread:

use std::thread;

let mut mdc = vec![];
log_mdc::iter(|k, v| mdc.push((k.to_owned(), v.to_owned())));

thread::spawn(|| {
    log_mdc::extend(mdc);
});

Structs

ExtendGuard

A guard objects which restores MDC entries when dropped.

InsertGuard

A guard object which restores an MDC entry when dropped.

Functions

clear

Removes all values from the MDC.

extend

Extends the MDC with new entries.

extend_scoped

Extends the MDC with new entries in a scoped fashion.

get

Retrieves a value from the MDC.

insert

Inserts a new entry into the MDC, returning the old value.

insert_scoped

Inserts a new entry into the MDC in a scoped fashion.

iter

Invokes the provided closure for each entry in the MDC.

remove

Removes a value from the MDC.