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に記録されたエラーメッセージです