2024-12-09 #[tracing::instrument] を設定している
bouzuya/rust-sandbox の fbauth に #[tracing::instrument]
を設定している。ログが足りていない。
https://docs.rs/tracing/0.1.41/tracing/attr.instrument.html
#[tracing::instrument(err(Debug), ret(level = tracing::Level::DEBUG), skip(app_state))]
で入れてみた。
ret
は戻り値、 err
はエラーを記録する。
ret
は既定値が Level::INFO
なので Level::DEBUG
にしている。
err(Debug)
は std::fmt::Debug
で記録する。 anyhow::Error
の場合 std::fmt::Debug
で記録すると caused by の形で source をたどってくれる。とっておきたくない引数は skip
に含める。
これをとりあえず request handler に設定した。
ぼくはあまりきちんとログをとったことがなくて、ログをどう入れるのが適切なのか分からない。「スタックトレースか?」くらいに入れてみて減らしていくのが良いのかもしれない。
Rust は例外がなく Result で処理するので、雑に書いていると、例外だと当然のようにとってくれるエラーの発生箇所の情報さえ失われる。エラーの工夫と合わせてログもこまめに取るようにしたい。
今日のコミット。