Rechercher une page de manuel
Log::Log4perl::Appender::Buffer.3pm
Langue: en
Version: 2010-06-17 (ubuntu - 24/10/10)
Section: 3 (Bibliothèques de fonctions)
NAME
Log::Log4perl::Appender::Buffer - Buffering Appender
SYNOPSIS
use Log::Log4perl qw(:easy); my $conf = qq( log4perl.category = DEBUG, Buffer # Regular Screen Appender log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.stdout = 1 log4perl.appender.Screen.layout = PatternLayout log4perl.appender.Screen.layout.ConversionPattern = %d %p %c %m %n # Buffering appender, using the appender above as outlet log4perl.appender.Buffer = Log::Log4perl::Appender::Buffer log4perl.appender.Buffer.appender = Screen log4perl.appender.Buffer.trigger_level = ERROR ); Log::Log4perl->init(\$conf); DEBUG("This message gets buffered."); INFO("This message gets buffered also."); # Time passes. Nothing happens. But then ... print "It's GO time!!!\n"; ERROR("This message triggers a buffer flush.");
DESCRIPTION
"Log::Log4perl::Appender::Buffer" takes these arguments:- "appender"
- Specifies the name of the appender it buffers messages for. The appender specified must be defined somewhere in the configuration file, not necessarily before the definition of "Log::Log4perl::Appender::Buffer".
- "max_messages"
- Specifies the maximum number of messages the appender will hold in its ring buffer. "max_messages" is optional. By default, "Log::Log4perl::Appender::Buffer" will not limit the number of messages buffered. This might be undesirable in long-running processes accumulating lots of messages before a flush happens. If "max_messages" is set to a numeric value, "Log::Log4perl::Appender::Buffer" will displace old messages in its buffer to make room if the buffer is full.
- "trigger_level"
- If trigger_level is set to one of Log4perl's levels (see Log::Log4perl::Level), a "trigger" function will be defined internally to flush the buffer if a message with a priority of $level or higher comes along. This is just a convenience function. Defining
log4perl.appender.Buffer.trigger_level = ERROR
is equivalent to creating a trigger function like
log4perl.appender.Buffer.trigger = sub { \ my($self, $params) = @_; \ return $params->{log4p_level} >= \ $Log::Log4perl::Level::ERROR; }
See the next section for defining generic trigger functions.
- "trigger"
- "trigger" holds a reference to a subroutine, which "Log::Log4perl::Appender::Buffer" will call on every incoming message with the same parameters as the appender's "log()" method:
my($self, $params) = @_;
$params references a hash containing the message priority (key "l4p_level"), the message category (key "l4p_category") and the content of the message (key "message").
If the subroutine returns 1, it will trigger a flush of buffered messages.
Shortcut
DEVELOPMENT NOTES
"Log::Log4perl::Appender::Buffer" is a composite appender. Unlike other appenders, it doesn't log any messages, it just passes them on to its attached sub-appender. For this reason, it doesn't need a layout (contrary to regular appenders). If it defines none, messages are passed on unaltered.Custom filters are also applied to the composite appender only. They are not applied to the sub-appender. Same applies to appender thresholds. This behaviour might change in the future.
COPYRIGHT AND LICENSE
Copyright 2002-2009 by Mike Schilli <m@perlmeister.com> and Kevin Goess <cpan@goess.org>.This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre