介紹
env_logger 配合 log 庫使用,
log 是rust日志庫的外觀庫,給日志庫提供抽象的記錄介面,
log使用宏,如info!() trace!()記錄日志
假如需要替換當前使用的日志庫,只需將初始化相關的代碼和toml檔案修改
env_logger 通過配置環境變數中 RUST_LOG 實作日志過濾
實踐
Cargo.toml
[dependencies]
log = "0.4"
env_logger = "0.9"
main.rs
use std::env::set_var;
use log::{debug, error, log_enabled, info, Level};
fn main() {
set_var("RUST_LOG", "debug");
env_logger.init();
//env_logger::builder().format_timestamp(None).init();
debug!("this is a debug {}", "message");
error!("this is printed by default");
if log_enabled!(Level::Info) {
let x = 3 * 4; // expensive computation
info!("the answer was: {}", x);
}
}
過濾規則
set_var 配置環境變數 RUST_LOG 的過濾規則
-
過濾日志等級(debug,error...)
set_var("RUST_LOG", "debug"); -
過濾哪個檔案的日志(工程名::模塊::檔案名=level),
.\baseframe\ |-- Cargo.lock |-- Cargo.toml |-- diesel.toml `-- src |-- main.rs `-- module |-- mod.rs `-- test.rs列印test檔案輸出的所有等級的日志
set_var("RUST_LOG", "baseframe::module::test");列印全域 error 日志和 test 中 info 等級以上的日志
set_var("RUST_LOG", "error,baseframe::module::test=info"); -
正則運算式過濾日志
set_var("RUST_LOG", "/正則運算式");列印包含"include"的日志
set_var("RUST_LOG", /include");過濾全域 error 日志和 test 中 info 等級以上的日志,列印包含include的日志
set_var("RUST_LOG", "error,baseframe::module::test=info/include");
自定義輸出格式
官方檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/499835.html
標籤:其他
上一篇:Allure的簡單使用
