# Chrome Logger 便利ですね! {{tag: perl, cpan}} {{tw: tokuhirom}} さんが書いてる {{cpan: Web::ChromeLogger}} というモジュールがあって、これは [[http://craig.is/writing/chrome-logger|Chrome Logger]] を Perl で利用するためのモジュール。 ## Chrome Logger Chrome Logger 自体はサーバサイドで生成した情報を HTTP ヘッダの `X-ChromeLogger-Data` に突っ込んでおけば、web ブラウザであるところの google chrome の console ログに表示するための拡張機能。 SPEC はこちらにある 開発時のお助け情報出力に超便利。 ## Amon2::Plugin::Web::ChromeLogger というわけで、Amon2 を使った web アプリで Chrome Logger をさくっと使えるようにプラグイン書きました。 {{cpan: Amon2::Plugin::Web::ChromeLogger}} 以下のようにプラグインをロードして、 __PACKAGE__->load_plugins('Web::ChromeLogger'); 以下のように、`$c` に `chrome` というメソッドが生えているので、そいつで情報を吐いておくと、console に表示されます。 $c->chrome('aloha!'); `chrome` メソッドだと info で吐くだけなので、もし他のログタイプで吐きたい場合は、やっぱり `$c` に生えている `chrome_logger` メソッドで、以下のように Web::ChromeLogger のインスタンスに直接アクセスします。 $c->chrome_logger->warn('mahalo!'); 簡単ですね! なお、このプラグインは、`$ENV{PLACK_ENV}` が `production` の時は無効になります。 ## Plack::Middleware::ChromeLogger Amon2 使ってないよ! という Plack 生派のあなたのために、{{cpan: Plack::Middleware::ChromeLogger}} も書きました。 以下のような感じです。 use Plack::Builder; builder { enable "ChromeLogger"; sub { $env->{"psgix.chrome_logger"}->info("foo"); [200, [], ["OK"]]; }; }; 苦渋の `psgix` です。はい。便利なアクセッサは各自実装すると良いと思いますが、アプリケーションにプラグイン機構あればそっちで普通書きますね。すいません。 ちなみに、Mojolicious のやつは こんなのがあります。 現場からは以上でーす。