Rust:
標準エラーへの書き込み
方法:
Rustはeprintln!
マクロを使用してstderrに書き込む直観的な方法を提供します。これはprintln!
がstdoutに使用されるのと同様です。基本的な例を以下に示します:
fn main() {
eprintln!("これはエラーメッセージです!");
}
標準エラーへのサンプル出力:
これはエラーメッセージです!
エラーメッセージをよりコントロールしたい場合、例えばテキストをフォーマットしたり、I/Oの結果を扱いたりする場合は、std::io
モジュールからstderr
関数を使用します。この方法はグローバルなstderrストリームへのハンドルを提供し、Write
トレイトからのwrite_all
やwriteln
のようなメソッドを使用して書き込むことができます:
use std::io::{self, Write};
fn main() {
let stderr = io::stderr();
let mut handle = stderr.lock();
writeln!(handle, "フォーマットされたエラーメッセージ:{}", 404).expect("stderrへの書き込みに失敗");
}
標準エラーへのサンプル出力:
フォーマットされたエラーメッセージ:404
ライブラリを頼りにする環境やアプリケーションで作業している場合、log
やenv_logger
のようなライブラリが人気です。これらはログ記録の目的でより多用されていますが、設定可能でエラーログレベルをstderrに向けることができます。以下はlog
とenv_logger
を使用した簡単な使用例です:
まず、Cargo.toml
に依存関係を追加します:
[dependencies]
log = "0.4"
env_logger = "0.9"
次に、アプリケーションでロギングを設定して使用します:
fn main() {
env_logger::init();
log::error!("これはstderrに記録されたエラーメッセージです");
}
このプログラムを実行する(適切な環境変数、例えばRUST_LOG=error
でenv_logger
を設定した後)と、ログインフラストラクチャを利用してエラーメッセージがstderrに出力されます。
ERROR: これはstderrに記録されたエラーメッセージです