Rust:
写入标准错误

如何操作:

Rust 提供了一种直接写入 stderr 的简单方式,使用的是 eprintln! 宏,类似于 println! 用于 stdout 的方式。这里是一个基本示例:

fn main() {
    eprintln!("这是一个错误信息!");
}

示例输出(到标准错误):

这是一个错误信息!

如果你想要对错误信息有更多控制,如当你希望格式化文本或处理 I/O 结果时,使用 std::io 模块中的 stderr 函数。此方法提供了一个句柄到全局的 stderr 流,然后你可以使用 Write 特征中的 write_allwriteln 方法向其写入:

use std::io::{self, Write};

fn main() {
    let stderr = io::stderr();
    let mut handle = stderr.lock();
    
    writeln!(handle, "格式化错误信息:{}", 404).expect("写入 stderr 失败");
}

示例输出(到标准错误):

格式化错误信息:404

如果你在依赖库进行日志记录或错误处理的环境或应用程序中工作,如 logenv_logger 等库很受欢迎。虽然它们更多用于日志记录目的,但它们是可配置的,并且可以将错误日志级别定向到 stderr。下面是使用 logenv_logger 的简单示例:

首先,将依赖项添加到你的 Cargo.toml

[dependencies]
log = "0.4"
env_logger = "0.9"

然后,在你的应用程序中设置并使用日志记录:

fn main() {
    env_logger::init();
    log::error!("这是记录到 stderr 的错误信息");
}

运行这个程序(在设置了适当的环境变量之后,例如,RUST_LOG=error),将会将错误信息输出到 stderr,利用日志记录基础设施。

ERROR: 这是记录到 stderr 的错误信息