POE::Component::LoggerUser Contributed Perl DocumentaPOE::Component::Logger(3)NAMEPOE::Component::Logger - A POE logging class
SYNOPSIS
In your startup code somewhere:
POE::Component::Logger->spawn(ConfigFile => 'log.conf');
And later in an event handler:
Logger->log("Something happened!");
DESCRIPTIONPOE::Component::Logger provides a simple logging component that uses
Log::Dispatch::Config to drive it, allowing you to log to multiple
places at once (e.g. to STDERR and Syslog at the same time) and also to
flexibly define your logger's output.
It is very simple to use, because it creates a Logger::log method (yes,
this is namespace corruption, so shoot me). If you don't like this,
feel free to post directly to your logger as follows:
$kernel->post('logger', 'log', "An error occurred: $!");
In fact you have to use that method if you pass an Alias option to
spawn (see below).
All logging is done in the background, so don't expect immediate output
- the output will only occur after control goes back to the kernel so
it can process the next event.
OPTIONS and METHODS
spawn
The spawn class method can take two options. A required ConfigFile
option, which specifies the location of the config file as passed to
Log::Dispatch::Config's "configure()" method (note that you can also
use an object here, see Log::Dispatch::Config for more details). The
other available option is Alias which you can use if you wish to have
more than one logger in your POE application. Note though that if you
specify an alias other than the default 'logger' alias, you will not be
able to use the "Logger-<log" shortcut, and will have to use direct
method calls instead.
Logger->log
This is used to perform a logging action. You may either pass a string,
or a hashref. If you pass in a string it is logged at the level
specified in $POE::Component::Logger::DefaultLevel, which is 'warning'
by default. If you pass in a hashref it is passed as a hash to
Log::Dispatch's "log()" method.
LOGGING STATES
The following states are available on the logging session:
log
Same as "Logger-<log()", except you may use a different alias if
posting direct to the kernel, for example:
$kernel->post( 'error.log', 'log', "Some error");
$kernel->post( 'access.log', 'log', "Access Details");
debug
And also "notice" "warning", "info", "error", "critical", "alert" and
"emergency".
These states simply log at a different level. See Log::Dispatch for
further details.
EXAMPLE CONFIG FILE
# logs to screen (STDERR) and syslog
dispatchers = screen syslog
[screen]
class = Log::Dispatch::Screen
min_level = info
stderr = 1
format = %d %m %n
[syslog]
class = Log::Dispatch::Syslog
min_level = warning
AUTHOR
Matt Sergeant, matt@sergeant.org
BUGS
Please use http://rt.cpan.org/ for bugs.
LICENSE
This is free software. You may use it and redistribute it under the
same terms as Perl itself.
SEE ALSO
Log::Dispatch
Log::Dispatch::Config
AppConfig
POE
perl v5.14.1 2002-01-10 POE::Component::Logger(3)