9个版本
0.1.8 | 2021年9月12日 |
---|---|
0.1.7 | 2021年2月21日 |
0.1.6 | 2020年11月17日 |
0.1.5 | 2019年12月25日 |
0.1.1 | 2018年7月23日 |
#344 在 调试 中
3,871 每月下载量
用于 5 个crate(3个直接使用)
9KB
68 行
Log-reroute
log
允许设置目标日志记录器,但在应用程序的生命周期内只能设置一次。这个库通过提供日志代理来帮助解决这个问题。代理后面的日志记录器可以根据需要切换。
lib.rs
:
在运行时重新路由日志消息的crate。
log
日志门面允许在整个程序的生命周期内设置单个目标。如果您想多次更改日志目标,可以使用 Reroute
(直接使用或通过 init
和 reroute
函数)。
如果您在不知道主要日志将去哪里之前想将日志记录到 stderr
,这可能会很有用。
use fern::Dispatch;
use log::{info, LevelFilter};
fn main() {
// Enable logging of Debug and more severe messages.
log::set_max_level(LevelFilter::Debug);
info!("This log message goes nowhere");
log_reroute::init().unwrap();
info!("Still goes nowhere");
// Log to stderr
let early_logger = Dispatch::new().chain(std::io::stderr()).into_log().1;
log_reroute::reroute_boxed(early_logger);
info!("This one goes to stderr");
// Load file name from config and log to that file
let file = tempfile::tempfile().unwrap();
let logger = Dispatch::new().chain(file).into_log().1;
log_reroute::reroute_boxed(logger);
info!("And this one to the file");
// Stop logging
log_reroute::reroute(log_reroute::Dummy);
}
依赖项
~320KB