除此之外,还需要包装下 set_logger 和 set_max_level: uselog::{SetLoggerError, LevelFilter};staticLOGGER: SimpleLogger = SimpleLogger;pubfninit()->Result<(), SetLoggerError> {log::set_logger(&LOGGER).map(|()| log::set_max_level(LevelFilter::Info))} 然后再main函数里面设置全局记录器: u...
log还提供了set_logger函数用于设置日志库,set_max_level用于设置最大日志级别,但是如果你选了具体的日志库,它往往会提供更高级的 API,无需我们手动调用这两个函数,例如下面的env_logger就是如此。 env_logger 修改Cargo.toml, 添加以下内容: # in Cargo.toml [dependencies] log = "0.4.0" env_logger = "0...
use log::{info, LevelFilter}; use std::io::Write; fn main() { env_logger::init(); let filter = log::FilterBuilder::new() .target("myapp::database") .level(LevelFilter::Info) .build(); log::set_logger(&LOGGER).unwrap(); log::set_max_level(LevelFilter::Info); info!("Hello...
log::set_boxed_logger(Box::new(MyLogger {})).unwrap(); // log::set_logger(&MY_LOGGER).unwrap(); log::set_max_level(LevelFilter::Error); 第三步,通过宏控制日志分级。 error!(target:"main", "this is a error"); warn!(target:"main", "this is a warning"); info!("this is ...
日志库一般会实现日志分级、日志过滤、日志输出格式化、日志回滚等功能。本文介绍了Rust log库的使用,并给出了几个常用日志库的使用示例。 一、Rust log 1、log库 这个log库给出了日志库的一般抽象,后面具体的日志库需要基于这个抽象实现具体的实例。后面通过示例说明。
set RUST_LOG=debug 在Windows 上(PowerShell): $env:RUST_LOG="debug" 完整示例 [package] name = "helloworld" version = "0.1.0" edition = "2021" [dependencies] rand = "0.8.5" log = "0.4" env_logger = "0.10" #[warn(unused_imports)] use log::{debug, error, log_enabled, info...
usecolored::*;useenv_logger::{Builder,fmt::Target,LevelFilter};uselog::{info,log};usestd::io::Write;fnmain(){// 初始化日志设置Builder::new().format(|buf,record|{letlevel={buf.default_styled_level(record.level())};letmutstyle=buf.style();style.set_bold(true);writeln!(buf,"{}\t...
set RUST_LOG="debug" cargo run 1. 2. 如果我们指定库等级可以设置 RUST_LOG="info,wenmeng=warn,webparse=warn" 1. 这样就可以减少第三方库打日志给程序带来的干扰 需要在Cargo.toml中引用 [dependencies] log = "0.4.20" env_logger = "0.10.0" ...
function_log: bool,#[structopt(short, long)]no_cache: bool,#[structopt()]fname: String,#[structopt(short, long, default_value = "_start")]entrypoint: String,#[structopt()]args: Vec<String>,} Rust编译器会生成所需的参数解析代码,然后可以很方便的调用:fn main() { let opt = Opt::from...
sync::Logger,LEVEL,LOG,Format,MODE, }; fn log_init() {LOG.set_console(true) //设置控制台日志 .set_level(LEVEL::Info) //日志级别,默认Debug.set_format(Format::LevelFlag |Format::Time|Format::ShortFileName) //结构化日志,定义输出的日志信息 ...