LoginSignup
6

More than 5 years have passed since last update.

開発時にplackupで起動した時に出力されるログを制御する

Posted at

出力されるログを制御するPlack::Middleware::LogFilterというものを書いた。
https://github.com/memememomo/Plack-Middleware-LogFilter

以下のようにして使用する。

app.psgi
use Plack::Builder;
builder {
    enable 'LogFilter', filter => sub {
        my ($env, $output) = @_;

        # ignore static file log
        if ($output =~ /\/static\/(js|css|images)/) {
            return 0;
        }

        return 1;
    };
    $app
};

ログの1行1行で、出力するかどうかを判別するフィルタを設定できる。
上記の例では、静的なファイルの配信ログを出力しないように設定している。

開発でplackupコマンドでアプリを立ち上げて
WAFなりPlack::Middleware::Staticなりで、
静的ファイルもPSGIアプリで返すと、
静的ファイルの配信ログもドバっと出力されてしまう。
printデバッグで出力しているログが流れてしまってたりしたので不便だった。

パイプやgrepで頑張れば同じことができそうな気もしたが、
うまくいかなかったのでひとまずこの形で解決した。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6