Log::Dispatch::Configurator::YAML - Configurator implementation with YAML


Log-Dispatch-Configurator-YAML documentation Contained in the Log-Dispatch-Configurator-YAML distribution.

Index


Code Index:

NAME

Top

Log::Dispatch::Configurator::YAML - Configurator implementation with YAML

SYNOPSIS

Top

  use Log::Dispatch::Config;
  use Log::Dispatch::Configurator::YAML;

  my $config = Log::Dispatch::Configurator::YAML->new('log.yml');
  Log::Dispatch::Config->configure($config);

  # nearby piece of code
  my $log = Log::Dispatch::Config->instance;

DESCRIPTION

Top

Log::Dispatch::Configurator::YAML is an implementation of Log::Dispatch::Configurator using YAML format. Here is a sample of config file.

 ---
 dispatchers:
   - file
   - screen

 file:
   class: Log::Dispatch::File
   min_level: debug
   filename: /path/to/log
   mode: append
   format: '[%d] [%p] %m at %F line %L%n'

 screen:
   class: Log::Dispatch::Screen
   min_level: info
   stderr: 1
   format: '%m'

SEE ALSO

Top

Log::Dispatch::Configurator::AppConfig, Log::Dispatch::Config, AppConfig

AUTHOR

Top

Florian Merges <fmerges@cpan.org>

COPYRIGHT AND LICENSE

Top


Log-Dispatch-Configurator-YAML documentation Contained in the Log-Dispatch-Configurator-YAML distribution.

package Log::Dispatch::Configurator::YAML;
use base 'Log::Dispatch::Configurator';
use strict;
use warnings;

our $VERSION = '0.03';

use YAML ();


sub new {
    my($class, $file) = @_;
    my $self = bless { file => $file }, $class;
    $self->parse_file;
    return $self;
}


sub parse_file {
    my $self = shift;
    my $file = $self->{'file'};

    my $config = YAML::LoadFile($file);
    $self->{'_config'} = $config;
}


sub reload {
    my $self = shift;
    $self->parse_file;
}


sub get_attrs_global {
    my $self = shift;
    my $dispatchers
        = exists $self->{'_config'}->{'dispatchers'} ? $self->{'_config'}->{'dispatchers'} : [];
    return {
        format => undef,
        dispatchers => $dispatchers,
    };
}


sub get_attrs {
      my($self, $name) = @_;
      return $self->{'_config'}->{$name};
}



1;

__END__