记录源文件和行号

2024-01-13

使用 Rust 的log, and env_loggercrates,如何让输出包含调用日志调用的源文件和行号?


在下面的例子中logger_example是我的二进制文件的名称Cargo.toml, e.g.

[[bin]]
name = "logger_example"
path = "src/bin/logger_example.rs"

您可以像这样自定义记录器格式:

use log::{info, LevelFilter};
use std::io::Write;

fn main() {
    env_logger::Builder::new()
        .format(|buf, record| {
            writeln!(
                buf,
                "{}:{} {} [{}] - {}",
                record.file().unwrap_or("unknown"),
                record.line().unwrap_or(0),
                chrono::Local::now().format("%Y-%m-%dT%H:%M:%S"),
                record.level(),
                record.args()
            )
        })
        .filter(Some("logger_example"), LevelFilter::Debug)
        .init();

    info!("hello world")
}

输出是:

src/bin/logger_example.rs:20 2020-11-30T19:34:16 [INFO] - hello world

我在这里找到了答案:https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录源文件和行号 的相关文章

随机推荐