Changeset 9638

Show
Ignore:
Timestamp:
04/17/08 22:56:54 (5 years ago)
Author:
tokuhirom
Message:

logger も component にしてみるよ

Location:
lang/perl/Moxy/branches/CC/lib
Files:
1 added
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Moxy/branches/CC/lib/Moxy.pm

    r9634 r9638  
    1212use UNIVERSAL::require; 
    1313use Carp; 
    14 use Log::Dispatch; 
    1514use Scalar::Util qw/blessed/; 
    16 my $TERM_ANSICOLOR_ENABLED = eval { use Term::ANSIColor; 1; }; 
    1715 
    18 __PACKAGE__->load_components(qw/UAInfo/); 
     16__PACKAGE__->load_components(qw/UAInfo Logger/); 
    1917 
    2018sub new { 
     
    2321    my $self = bless { config => $config, }, $class; 
    2422 
    25     $self->{logger} = Log::Dispatch->new; 
    26  
    2723    $self->load_plugins; 
    2824 
    2925    $self->_init_storage; 
    30  
    31     $self->_init_logger; 
    3226 
    3327    if (not $self->is_loaded(qr{::Server})) { 
     
    6862    my ($self, $plugin) = @_; 
    6963 
    70     $self->log(debug => "load plugin: $plugin->{module}"); 
    71  
    7264    my $module = "Moxy::Plugin::" . $plugin->{module}; 
    7365    $module->require or die $@; 
     
    9789 
    9890sub storage { shift->{storage} } 
    99  
    100 # ------------------------------------------------------------------------- 
    101  
    102 sub _init_logger { 
    103     my ($self, ) = @_; 
    104  
    105     for my $target (@{$self->config->{global}->{log}->{targets}}) { 
    106         $target->{module}->use or die $@; 
    107         $self->{logger}->add( $target->{module}->new( %{ $target->{conf} } ) ); 
    108     } 
    109 } 
    110  
    111 sub log { 
    112     my ($self, $level, $msg, %opt) = @_; 
    113  
    114     # hack to get the original caller as Plugin or Server 
    115     my $caller = $opt{caller}; 
    116     unless ($caller) { 
    117         my $i = 0; 
    118         while (my $c = caller($i++)) { 
    119             last if $c !~ /Plugin/; 
    120             $caller = $c; 
    121         } 
    122         $caller ||= caller(0); 
    123     } 
    124  
    125     chomp($msg); 
    126     if ( $self->config->{global}->{log}->{encoding} ) { 
    127         $msg = Encode::decode_utf8($msg) unless utf8::is_utf8($msg); 
    128         $msg = Encode::encode( $self->config->{global}->{log}->{encoding}, $msg ); 
    129     } 
    130  
    131     $self->{logger}->log(level => $level, message => "$caller [$level] $msg\n"); 
    132 } 
    13391 
    13492# -------------------------------------------------------------------------