Crates.io | print_logger |
lib.rs | print_logger |
version | 0.2.1 |
source | src |
created_at | 2024-01-28 09:10:41.534562 |
updated_at | 2024-10-27 07:06:18.349175 |
description | Logger that print messages to stdout or stderr |
homepage | https://gitlab.com/rust-utils/print_logger |
repository | https://gitlab.com/rust-utils/print_logger |
max_upload_size | |
id | 1117425 |
size | 84,347 |
A simple logger that prints messages either to stdout or stderr (depending on the message type). A fixed color scheme is applied.
use log::*;
use regex::Regex;
// ...
print_logger::new()
.targets_by_regex(&[Regex::new(&format!("^{}[::.+]*", module_path!())).unwrap()])
.level_filter(LevelFilter::Info)
.init()
.unwrap();
error!("some failure");
// ...
print_logger
offers the possibility to restrict components which can log. Many crates use log but you may not want their output in your application. For example hyper makes heavy use of log but when your application receives -vvvvv
to enable the trace!()
messages you don't want the output of hyper
's trace!()
level.
To support this print_logger
includes two methods:
With targets_by_name
a list of log targets (see https://docs.rs/log/latest/log/macro.error.html) can be specified. Only messages for these targets are displayed.
With targets_by_regex
a list of regular expressions can be specified. Messages are only displayed if their target matches at least one of these expressions. In the example above only messages from the binary itself but none of its dependencies are displayed (per default the current module is used as target in log messages).
If both lists are given, a message is displayed if its target either is in targets_by_name
or if it matches one to the expressions of targets_by_regex
. Target names (i.e., per default the actual module path) are displayed at the beginning of the log message if the print_target_filter
is greater or equal than the specified level_filter
.