標準エラーへの書き込み

Rust:
標準エラーへの書き込み

方法:

Rustはeprintln!マクロを使用してstderrに書き込む直観的な方法を提供します。これは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=errorenv_loggerを設定した後)と、ログインフラストラクチャを利用してエラーメッセージがstderrに出力されます。

ERROR: これはstderrに記録されたエラーメッセージです