NAME
Log::Abstraction - Logging Abstraction Layer
VERSION
0.20
SYNOPSIS
use Log::Abstraction;
my $logger = Log::Abstraction->new(logger => 'logfile.log');
$logger->debug('This is a debug message');
$logger->info('This is an info message');
$logger->notice('This is a notice message');
$logger->trace('This is a trace message');
$logger->warn({ warning => 'This is a warning message' });
DESCRIPTION
The Log::Abstraction class provides a flexible logging layer on top of different types of loggers,
including code references, arrays, file paths, and objects.
It also supports logging to syslog if configured.
METHODS
new
my $logger = Log::Abstraction->new(%args);
Creates a new Log::Abstraction object.
The argument can be a hash,
a reference to a hash or the logger value.
The following arguments can be provided:
-
carp_on_warnIf set to 1, and
loggeris not given, callCarp:carponwarn(). -
config_filePoints to a configuration file which contains the parameters to
new(). The file can be in any common format, includingYAML,XML, andINI. This allows the parameters to be set at run time.On non-Windows system, the class can be configured using environment variables starting with
"Log::Abstraction::". For example:export Log::Abstraction::script_name=fooIt doesn't work on Windows because of the case-insensitive nature of that system.
-
levelThe minimum level at which to log something, the default is "warning".
-
loggerA logger can be one or more of:
- a code reference
- an array reference
- a file path
- a file descriptor
- an object
- a hash of options, e.g. 'file' containing the filename, 'array' a reference to an array, or 'fd' containing a file descriptor to log to
Defaults to Log::Log4perl.
-
syslog- A hash reference for syslog configuration. -
script_nameThe name of the script. It's needed when
syslogis given, if none is passed, the value is guessed.
Clone existing objects with or without modifications:
my $clone = $logger->new();
level
Get/set the minimum level to log at
messages
Return all the messages emmitted so far
debug
$logger->debug(@messages);
Logs a debug message.
info
$logger->info(@messages);
Logs an info message.
notice
$logger->notice(@messages);
Logs a notice message.
trace
$logger->trace(@messages);
Logs a trace message.
warn
$logger->warn(@messages);
$logger->warn(\@messages);
$logger->warn(warning => \@messages);
Logs a warning message. This method also supports logging to syslog if configured.
If not logging mechanism is set,
falls back to Carp.
AUTHOR
Nigel Horne <njh@nigelhorne.com >
SUPPORT
This module is provided as-is without any warranty.
Please report any bugs or feature requests to bug-log-abstraction at rt.cpan.org,
or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Log-Abstraction.
I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Log::Abstraction
You can also look for information at:
-
MetaCPAN
-
RT: CPAN's request tracker
-
CPAN Testers' Matrix
-
CPAN Testers Dependencies
COPYRIGHT AND LICENSE
Copyright (C) 2025 Nigel Horne
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.