Ruby and Rails

Ruby と Ruby on Rails のこと

request-log-analyzer で Rails のログをレポーティング

wvanbergen/request-log-analyzer を使うと、Rails が吐き出すログからページの処理時間の平均や合計などのレポートを生成 ( 出力例 ) 。

インストール

$ gem install request-log-analyzer

簡単な使い方

$ request-log-analyzer log/production.log

オプション

--boring, -b

コンソールではカラフルな表示がデフォルト。そのため peco と組み合わせると都合が悪い。そういう場合は -b にするとエスケープシーケンスなしになる。

$ request-log-analyzer log/production.log -b | peco

--report-width

コンソールで実行すると、デフォルトでは画面いっぱいに表示される。

横長すぎるなら --report-width で横幅を指定。80 以下にするとデザインが狂うようだ。

$ request-log-analyzer log/development.log --report-width 80

--mail

logwatch のようにメールで送ってくれる。ちゃんと -b で、いい感じに --report-width されている。

$ request-log-analyzer log/development.log --mail test@example.com

フィルタリング

request-log-analyzer は指定日付以降や前、特定コントローラだけの表示が可能。

--after, --before

期間指定や、ある日付以降といった指定が可能。

$ request-log-analyzer log/development.log --after 2014-12-01

12月のみ。

$ request-log-analyzer log/development.log --after 2014-12-01 --before 2014-12-31

--select, --reject

特定コントローラだけ表示。

$ request-log-analyzer log/development.log* --select controller SomeController

さらに action で絞り込める。

$ request-log-analyzer log/development.log* --select controller SomeController --select action index

指定コントローラを除外。

$ request-log-analyzer log/development.log* --reject controller SomeController

フォーマット

request-log-analyzer は Rails ログ以外に --format を指定すれば下記ログにも対応。

例えば Apache

$ request-log-analyzer --apache-format combined access.log

フォーマット指定も可能。

$ request-log-analyzer --apache-format "%h %l %u %t \"%r\" %>s %b" access.log

詳しくは公式ドキュメント。