记录Rust程序

Dan*_*ath 5 logging rust

如果我们有以下代码

fn main() {
    error!("This is an error log")
    warn!("This is a warn log")
    info!("this is an info log")
    debug!("This is a debug log")
}
Run Code Online (Sandbox Code Playgroud)

我们如何在Windows上启用调试级别输出?

Chr*_*gan 7

执行程序时,需要RUST_LOG适当设置环境变量; 它(就此而言)是逗号分隔的键=值列表; 键是板条箱或模块名称,例如extra或std::option; 值是数字,映射到日志级别:

  • 1:错误
  • 2:警告
  • 3:信息
  • 4:调试

(每个级别包括更重要的级别.)

在命令提示符中,编译和运行myprog时显示警告和错误将类似于:

rustc myprog.rs
set RUST_LOG=myprog=4
myprog.exe
Run Code Online (Sandbox Code Playgroud)

  • `debug`也需要用`--cfg debug`编译程序:没有它就完全删除它们. (3认同)
  • 我试图编辑您的问题 dbaupps 建议,但似乎已被拒绝。你能改变上面的片段来设置`RUST_LOG=myprog=4\n rustc myprog.rs --cfg debug\n myprog.exe`吗? (2认同)
  • 最近,不需要`--cfg=debug`,这是默认打开的,如果你不想要它,你需要`--cfg=nodebug` (2认同)

rus*_*net 7

如果你查看env_logger 文档,它会说:

“默认情况下,除错误级别之外的所有日志记录均被禁用。”

您设置一个环境变量。在你的情况下:RUST_LOG=debug.

extern crate env_logger;
extern crate log;
use log::{debug, error, info, warn};


fn main() {
    env_logger::init();

    error!("[!]  error");
    warn!("[!]   warn");
    info!("[!]   info");
    debug!("[!]  debug");
}

/*
[2021-08-19T13:14:15Z ERROR cliapp] [!]  error
[2021-08-19T13:14:15Z WARN  cliapp] [!]   warn
[2021-08-19T13:14:15Z INFO  cliapp] [!]   info
[2021-08-19T13:14:15Z DEBUG cliapp] [!]  debug
*/
Run Code Online (Sandbox Code Playgroud)

CLion提示 ->

在此输入图像描述