|
NAMELog::Handler::Config - The main config loader. SYNOPSIS use Log::Handler;
my $log = Log::Handler->new();
# Config::General
$log->config(config => 'file.conf');
# Config::Properties
$log->config(config => 'file.props');
# YAML
$log->config(config => 'file.yaml');
Or use Log::Handler;
my $log = Log::Handler->new();
$log->config(
config => 'file.conf'
plugin => 'YAML',
);
DESCRIPTIONThis module makes it possible to load the configuration from a file. The configuration type is determined by the file extension. It's also possible to mix file extensions with another configuration types. PLUGINS Plugin name File extensions
------------------------------------------
Config::General cfg, conf
Config::Properties props, jcfg, jconf
YAML yml, yaml
If the extension is not defined then "Config::General" is used by default. METHODSconfig()With this method it's possible to load the configuration for your outputs. The following options are valid:
PLUGINS Config::General - inspired by the well known apache config format
Config::Properties - Java-style property files
YAML - optimized for human readability
EXAMPLESConfig structuresA very simple configuration looks like: $log->config(config => {
file => {
alias => 'file1',
filename => 'file1.log',
maxlevel => 'info',
minlevel => 'warn',
},
screen => {
alias => 'screen1',
maxlevel => 'debug',
minlevel => 'emerg',
}
});
Now, if you want to add another file-output then you can pass the outputs with a array reference: $log->config(config => {
file => [
{
alias => 'file1,
filename => 'file1.log',
maxlevel => 'info',
minlevel => 'warn',
},
{
alias => 'file2',
filename => 'file2.log',
maxlevel => 'error',
minlevel => 'emergency',
}
],
screen => {
alias => 'screen1',
maxlevel => 'debug',
minlevel => 'emerg',
},
});
It's also possible to pass the outputs as a hash reference. The hash keys "file1" and "file2" will be used as aliases. $log->config(config => {
file => {
file1 => {
filename => 'file1.log',
maxlevel => 'info',
minlevel => 'warn',
},
file2 => {
filename => 'file2.log',
maxlevel => 'error',
minlevel => 'emergency',
}
},
screen => {
alias => 'screen1',
maxlevel => 'debug',
minlevel => 'emerg',
},
});
If you pass the configuration with the alias as a hash key then it's also possible to pass a section called "default". The options from this section will be used as defaults. $log->config(config => {
file => {
default => { # defaults for all file-outputs
mode => 'append',
},
file1 => {
filename => 'file1.log',
maxlevel => 'info',
minlevel => 'warn',
},
file2 => {
filename => 'file2.log',
maxlevel => 'error',
minlevel => 'emergency',
}
},
screen => {
alias => 'screen1',
maxlevel => 'debug',
minlevel => 'emerg',
},
});
Examples for the config pluginsConfig::General <file>
alias = file1
fileopen = 1
reopen = 1
permissions = 0640
maxlevel = info
minlevel = warn
mode = append
timeformat = %b %d %H:%M:%S
debug_mode = 2
filename = example.log
message_layout = '%T %H[%P] [%L] %S: %m'
</file>
Or <file>
<file1>
fileopen = 1
reopen = 1
permissions = 0640
maxlevel = info
minlevel = warn
mode = append
timeformat = %b %d %H:%M:%S
debug_mode = 2
filename = example.log
message_layout = '%T %H[%P] [%L] %S: %m'
</file1>
</file>
YAML ---
file:
alias: file1
debug_mode: 2
filename: example.log
fileopen: 1
maxlevel: info
minlevel: warn
mode: append
permissions: 0640
message_layout: '%T %H[%P] [%L] %S: %m'
reopen: 1
timeformat: '%b %d %H:%M:%S'
Or ---
file:
file1:
debug_mode: 2
filename: example.log
fileopen: 1
maxlevel: info
minlevel: warn
mode: append
permissions: 0640
message_layout: '%T %H[%P] [%L] %S: %m'
reopen: 1
timeformat: '%b %d %H:%M:%S'
Config::Properties file.alias = file1
file.reopen = 1
file.fileopen = 1
file.maxlevel = info
file.minlevel = warn
file.permissions = 0640
file.mode = append
file.timeformat = %b %d %H:%M:%S
file.debug_mode = 2
file.filename = example.log
file.message_layout = '%T %H[%P] [%L] %S: %m'
Or file.file1.alias = file1
file.file1.reopen = 1
file.file1.fileopen = 1
file.file1.maxlevel = info
file.file1.minlevel = warn
file.file1.permissions = 0640
file.file1.mode = append
file.file1.timeformat = %b %d %H:%M:%S
file.file1.debug_mode = 2
file.file1.filename = example.log
file.file1.message_layout = '%T %H[%P] [%L] %S: %m'
PREREQUISITES Carp
Params::Validate
EXPORTSNo exports. REPORT BUGSPlease report all bugs to <jschulz.cpan(at)bloonix.de>. If you send me a mail then add Log::Handler into the subject. AUTHORJonny Schulz <jschulz.cpan(at)bloonix.de>. COPYRIGHTCopyright (C) 2007-2009 by Jonny Schulz. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
|