Ironのレスポンスの中身を覗き見るライブラリを雑に作った

κeenです。Rustその2 Advent Calendar 20172日目の記事です。 タイトルのままです。

作ったライブラリはiron_inspectで、crates.ioあります

モチベーションとしてはloggerによる通常のアクセスログの他にInternal Server Errorも別途ログ吐きたいよねというもの。 良さげなライブラリがなかったので雑に作りました。 Ironミドルウェアなので Chainlink_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);
    }));

以上

Written by κeen
Older article
RustのDI