4 releases
new 0.2.1 | Oct 27, 2024 |
---|---|
0.2.0 | Feb 8, 2024 |
0.1.1 | Jan 28, 2024 |
0.1.0 | Jan 28, 2024 |
#250 in Debugging
226 downloads per month
Used in otr
28KB
147 lines
print_logger
A simple logger that prints messages either to stdout or stderr (depending on the message type). A fixed color scheme is applied.
Simple example
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");
// ...
Module Level Logging
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
.
License
Dependencies
~2.3–10MB
~94K SLoC