tracing_plus/
lib.rs

1//! 该库是对[tracing](https://docs.rs/tracing/latest/tracing/)库的增强
2//!
3//! 在项目的的根目录创建一个文件名为`tracing-log.toml`或`tracing-log.yaml`的文件,
4//! 该库会根据改配置文件动态的注册日志,
5//! 然后调用`init_tracing_log`方法即可完成[tracing](https://docs.rs/tracing/latest/tracing/)日志的初始化工作
6
7mod layer;
8mod config;
9
10
11use crate::config::TracingLog;
12use crate::layer::{get_console_layer, get_file_layer};
13use tracing_subscriber::layer::SubscriberExt;
14use tracing_subscriber::util::SubscriberInitExt;
15use tracing_subscriber::Registry;
16
17
18pub fn init_tracing_log(){
19    let config = TracingLog::config();
20    let console = &config.console;
21    let files = &config.file;
22
23    let console = get_console_layer(console);
24
25    let file_layers = files.iter()
26        .map(|file| get_file_layer(file))
27        .collect::<Vec<_>>();
28
29    Registry::default()
30        .with(console)
31        .with(file_layers)
32        .init();
33}