Papertrailの無料版がいっぱいになったのでフィルタリングすることにした。Rails / heroku

Shunsuke Sawada

heroku + Rails で開発してると、いろいろアドオンがあって便利です。ログもPapertrailを使ってていい感じだったんだけども、「10MB超えました、無料版は終了です」となったので、いったんログを消すことにした。

部分的にログを消す方法は見つけられなかったな。まぁどうせブログのログだし重要でないので全消しすることに。削除ボタンなるものはなかったけど、Papertrailのアドオンをherokuから削除したら、またゼロから使えたよ。制限ないのかな。

Railsのログめちゃくちゃ多いから多分すぐまた満杯になってしまうだろうということで、間引くことに。デフォルトじゃ重要じゃないログもたくさん保存されてるからね。

たとえばこれ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Jan 21 12:26:48 yourapp app/web.1:    Rendered goog0px_02.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered goog0px_02.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered google/_ad_posts.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered google/_ad_posts.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered omment.html.erb (0.0ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered omment.html.erb (0.0ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered posts/show.html.erb withs/application (107.0ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered posts/show.html.erb withs/application (107.0ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered header.html.erb (7.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered header.html.erb (7.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered g_728px.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered g_728px.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered sharedessage.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered sharedessage.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered post_posts.html.erb (8.8ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered post_posts.html.erb (8.8ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered posts/_posts.html.erb (10.8ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered posts/_posts.html.erb (10.8ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered goog0px_01.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered goog0px_01.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered sharh_form.html.erb (0.6ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered sharh_form.html.erb (0.6ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered post_posts.html.erb (1.0ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered post_posts.html.erb (1.0ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered posts/_posts.html.erb (1.9ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered posts/_posts.html.erb (1.9ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered sdebar.html.erb (24.9ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered sdebar.html.erb (24.9ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered footer.html.erb (0.1ms) 
Jan 21 12:26:48 yourapp app/web.1:    Rendered footer.html.erb (0.1ms) 

テンプレート沢山つかうから、レンダリングされましたよーというログが大量にでる。これを毎回だされても困ったものなので、フィルタリングしちゃいましょう。

Papertrailのアドオンで、Account / Settings といくと、Filter Unnecessary Logs というのがあって、そのまんまですが、正規表現で要らないログをフィルターして間引けます。
Railsアプリを変更したり、あらたにGem入れなくても、Papertrail上で設定できるので便利だね。

Screen Shot 2014-01-21 at 9.43.52 PM

1
Rendered

と入れたので、上で挙げたログは全て間引かれます。

そんなにごっそり取り除かれたら困るという場合は、正規表現で書けばいけると。
たとえば下のような。

1
www\d+ \W: (Rendered|\/assets)

で、これが何を示しているかというと…正規表現の説明はしませんが…こんな感じ。

Screen Shot 2014-01-21 at 10.03.47 PM

逆に分かりにくいか。こんな感じの文字列がログの中にあったら見つけてねという表現です。
  

PostControllerのレンダーログだけ間引きたいという場合は、こんな感じでしょうか。

1
app\/web.\d:    Rendered posts\/

 
いろいろ実験するにはこのサイトが最高です。
http://rubular.com/
Your test string:にRailsのログを突っ込んで、いろいろさわってみれば、目的のログを掴むための正規表現がわかります。

これでキレイさっぱり!
ログ見るのが楽しくなってきた…は、ないか。

10
Shunsuke Sawada

おすすめの記事

acts-as-taggable-on タグを表示させる順番を決めたい
Railsを4.2にバージョンアップしたら、Vagrantのローカル開発環境にアクセスできなくなった問題
Railsのバリデーションエラー後にレイアウトが崩れるとき