Rustでlogと共に使用されるenv_loggerクレートのメモ。
|
|
env_loggerは、Rustでログ出力を行うクレート(ライブラリー)。
環境変数RUST_LOGにログレベルを指定することで、そのログレベル以上のログメッセージがコンソールに出力される。
RUST_LOGを定義しない場合はerrorログのみ出力される。
〜 [dependencies] log = "0.4" env_logger = "0.11"
一緒にlogクレートもdependenciesに入れる必要がある。
use log::{debug, error, info, trace, warn};
env_logger::init();
trace!("trace log");
debug!("debug log");
info!("info log");
warn!("warn log");
error!("error log");
env_logger::init()を呼んでおかないと、コンソールに何も出力されない。
$ export RUST_LOG=info $ cargo run
[2024-09-28T03:25:13Z INFO rust_example1] info log [2024-09-28T03:25:13Z WARN rust_example1] warn log [2024-09-28T03:25:13Z ERROR rust_example1] error log
env_loggerを初期化する方法の例。[2025-02-01]
| 例 | 説明 |
|---|---|
env_logger::init(); |
初期化に失敗した場合はパニックが発生する。 |
env_logger::try_init().expect("error"); |
初期化失敗時のエラーを取得できる。 |
env_logger::builder().is_test(true).init(); |
テストの実行用。 |
env_logger::builder().format_timestamp_millis().init(); |
時刻にミリ秒まで出力する。 |
env_logger::Builder::new() |
環境変数RUST_LOGの内容をプログラム内で指定する。[2025-07-12] |
env_loggerのログ出力先をファイルにする例。[2025-02-01]
let file = std::fs::OpenOptions::new()
.create(true)
.append(true)
.open("example.log")
.unwrap();
env_logger::builder()
.target(env_logger::Target::Pipe(Box::new(file)))
.init();