Parse::Dia::SQL::Logger - Wrapper for Log::Log4perl


Parse-Dia-SQL documentation Contained in the Parse-Dia-SQL distribution.

Index


Code Index:

NAME

Top

Parse::Dia::SQL::Logger - Wrapper for Log::Log4perl

SYNOPSIS

Top

    use Parse::Dia::SQL::Logger;
    my $logger = Parse::Dia::SQL::Logger::->new(loglevel => 'INFO');
    my $log = $logger->get_logger(__PACKAGE__);
    $log->error('error');
    $log->info('info');

DESCRIPTION

Top

This module is a wrapper around Log::Log4perl.

new

The constructor.

get_logger

  Return logger singleton object.

log_off

Decrease log level on all appenders. 1 =cut

log_on

Increase log level on all appenders.


Parse-Dia-SQL documentation Contained in the Parse-Dia-SQL distribution.
package Parse::Dia::SQL::Logger;

# $Id: Logger.pm,v 1.9 2011/02/16 10:23:11 aff Exp $

use warnings;
use strict;

use Log::Log4perl;

use constant APPENDER_THRESHOLDS_ADJUST_LOGOFF =>  7;
use constant APPENDER_THRESHOLDS_ADJUST_LOGON  => -7;

sub new {
  my ( $class, %param ) = @_;

  my $self = {
    log         => undef,
    loglevel    => $param{loglevel} || undef,
  };

  bless( $self, $class );
  $self->_init_log();
  return $self;
}

# Initialize the logger.  The commented lines are deliberately left to
# serve as exmples.
sub _init_log {
  my $self = shift;

  # Init logging
  my $conf = undef;

  if ($self->{loglevel}) {
    $conf = qq(
            # Loglevel set by user
            log4perl.category.Parse::Dia::SQL     = $self->{loglevel}, screen-main
            log4perl.appender.screen-main         = Log::Log4perl::Appender::Screen
            log4perl.appender.screen-main.stderr  = 1
            log4perl.appender.screen-main.layout  = PatternLayout
            log4perl.appender.screen-main.layout.ConversionPattern=[%p] %m%n 
        );
  } else {
    # Default logging
    $conf = q(
            # Main logger for Parse::Dia::SQL
            log4perl.category.Parse::Dia::SQL     = INFO, screen-main
            log4perl.appender.screen-main         = Log::Log4perl::Appender::Screen
            log4perl.appender.screen-main.stderr  = 1
            log4perl.appender.screen-main.layout  = PatternLayout
            log4perl.appender.screen-main.layout.ConversionPattern=[%p] %m%n 

            # Separate logger for Output::*
            log4perl.category.Parse::Dia::SQL::Output  = INFO, screen-output
            log4perl.appender.screen-output            = Log::Log4perl::Appender::Screen
            log4perl.appender.screen-output.stderr     = 1
            log4perl.appender.screen-output.layout     = PatternLayout
            log4perl.appender.screen-output.layout.ConversionPattern=[%p] %m%n 
            log4perl.additivity.Parse::Dia::SQL::Output  = 0

            # Separate logger for Utils.pm
            log4perl.category.Parse::Dia::SQL::Utils  = INFO, screen-utils
            log4perl.appender.screen-utils            = Log::Log4perl::Appender::Screen
            log4perl.appender.screen-utils.stderr     = 1
            log4perl.appender.screen-utils.layout     = PatternLayout
            log4perl.appender.screen-utils.layout.ConversionPattern=[%p] %m%n 
            log4perl.additivity.Parse::Dia::SQL::Utils  = 0
        );
  }
  
  Log::Log4perl::init( \$conf );

  # Adjust call stack for caller class, see man Log::Log4perl
  $Log::Log4perl::caller_depth = 1;
    
  return 1;
}

sub get_logger {
    my ($self, $name) = @_;
    #return $self->{logger};
    return Log::Log4perl::->get_logger($name);
}


sub log_off {
  my $self = shift;

  # Make sure it works also in case this is
  # called as function before object is blessed.
  _init_log() if ( !Log::Log4perl->initialized() );

  Log::Log4perl->appender_thresholds_adjust(APPENDER_THRESHOLDS_ADJUST_LOGOFF);

  return 1;
}

sub log_on {
  my $self = shift;

  # Make sure it works also in case this is
  # called as function before object is blessed.
  _init_log() if ( !Log::Log4perl->initialized() );

  Log::Log4perl->appender_thresholds_adjust(APPENDER_THRESHOLDS_ADJUST_LOGON);

  return 1;
}


1;

__END__

# End of Parse::Dia::SQL::Logger