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