Ironのレスポンスの中身を覗き見るライブラリを雑に作った
κeenです。Rustその2 Advent Calendar 20172日目の記事です。 タイトルのままです。
作ったライブラリはiron_inspectで、crates.ioにあります。
モチベーションとしてはlogger
による通常のアクセスログの他にInternal Server Errorも別途ログ吐きたいよねというもの。
良さげなライブラリがなかったので雑に作りました。
Ironミドルウェアなので Chain
に link_after
してあげればすぐ使えます。
Result
を取るかそのOk
のみをとるかErr
を取るか選べます。
Resultを取るのは
READMEにある使い方だと
let mut chain = Chain::new(handler);
chain.link_after(Inspect::new(|_req, res| match res {
Ok(r) => println!("ok: {:?}", r),
Err(e) => println!("err: {:?}", e),
}));
な感じですね。
欲しかったのはこんな感じに Err
だけ受けて雑にログ取る仕組みです。
ch.link_after(Inspect::error(|_, err| {
error!("internal errror occurred because of {}", err);
}));
以上