Hatena::Groupcatalyst

LAPISLAZULI HILL#Catalyst このページをアンテナに追加 RSSフィード

2007-08-16

[][]Catalyst-Helper-Log-Dispatchでも$c->log->dumper()を使いたい Catalyst-Helper-Log-Dispatchでも$c->log->dumper()を使いたい - LAPISLAZULI HILL#Catalyst を含むブックマーク はてなブックマーク - Catalyst-Helper-Log-Dispatchでも$c->log->dumper()を使いたい - LAPISLAZULI HILL#Catalyst Catalyst-Helper-Log-Dispatchでも$c->log->dumper()を使いたい - LAPISLAZULI HILL#Catalyst のブックマークコメント

いままでCatalyst::Logを使っていたので,C::P::Dumperを使っていた.これはlogに吐くときにData::Dumperを使って出力してくれる.変数にどういう値が入っているかいまだに勘違いしやすいへたれなので,開発やデバッグ時に重宝していた

no titleのhelperを使いはじめた.$c->log->dumper()ができなくなったのでC::P::DumperをコピペしてMyApp::Logger::Backend::Dumperをでっち上げた.最初はMyApp::Loggerに直接書いていたんだけど分離した.ほんとはHelperを作った方がよいかも.機会があれば習作としていずれ

MyApp::Logger::Backend::Dumper

package MyApp::Logger::Backend::Dumper;

use strict;
use warnings;
our $VERSION='0.01';

package MyApp::Logger::Backend;

use Data::Dumper;

$Data::Dumper::Sortkeys = 1;

sub dumper {
  my ($self, $var, $label) = @_;

  if (defined $label) {
      # temporarily change the Varname that D::D uses
      local $Data::Dumper::Varname = $label;
      $self->debug( Dumper($var) );
  }
  else {
      $self->debug( Dumper($var) );
  }
}

1;

このファイルを配置して,プラグインのロードを追加

use Catalyst qw/+MyApp::Logger +MyApp::Logger::Backend::Dumper/;
トラックバック - http://catalyst.g.hatena.ne.jp/lapis25/20070816