Log::Dispatch::Wx - Object for logging through Wx::Log*


Log-Dispatch-Wx documentation Contained in the Log-Dispatch-Wx distribution.

Index


Code Index:

NAME

Top

Log::Dispatch::Wx - Object for logging through Wx::Log*

SYNOPSIS

Top

  use Log::Dispatch::Wx;

  my $file = Log::Dispatch::Wx->new( name      => 'file1',
                                     min_level => 'info',
                                     );

  $file->log( level   => 'warning',
              message => "I've fallen but I am getting up\n" );

DESCRIPTION

Top

This module provides a simple object for logging to wxLog under the Log::Dispatch::* system.

METHODS

Top

* new(%p)

This method takes the same parameters as Log::Dispatch::Output::new.

* log_message( message => $ )

Sends a message to the appropriate output. Generally this shouldn't be called directly but should be called through the log() method (in Log::Dispatch::Output).

NOTES

Top

The logging levels used by Log::Dispatch are more fine-grained than what is offered by the wxWidgets log facility. The following mapping is used to determine which wxWidgets log function must be called:

    debug      Wx::LogDebug
    info       Wx::LogMessage
    notice         "
    warning    Wx::LogWarning
    error      Wx::LogError
    critical       "
    alert          "
    emergency      "

AUTHOR

Top

Mattia Barbon <mbarbon@cpan.org>

LICENSE

Top

Copyright (c) 2006 Mattia Barbon <mbarbon@cpan.org>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself


Log-Dispatch-Wx documentation Contained in the Log-Dispatch-Wx distribution.

package Log::Dispatch::Wx;

use strict;
use warnings;
use base qw(Log::Dispatch::Output);

use Wx;

our $VERSION = '0.01';

sub new {
    my( $class, %p ) = @_;
    my $self = bless {}, $class;

    $self->_basic_init(%p);

    return $self;
}

my %level_map =
  ( 0 => 'Wx::LogDebug',
    1 => 'Wx::LogMessage',
    2 => 'Wx::LogMessage',
    3 => 'Wx::LogWarning',
    4 => 'Wx::LogError',
    5 => 'Wx::LogError',
    6 => 'Wx::LogError',
    7 => 'Wx::LogError',
    );


sub log_message {
    my( $self, %p ) = @_;
    my $level = $self->_level_as_number( $p{level} );
    my $sub = $level_map{$level};

    no strict 'refs';
    &$sub( '%s', $p{message} );
}

1;

__END__