Rechercher une page de manuel
Log::Log4perl::Config::BaseConfigurator.3pm
Langue: en
Version: 2009-05-13 (fedora - 01/12/10)
Section: 3 (Bibliothèques de fonctions)
NAME
Log::Log4perl::Config::BaseConfigurator - Configurator Base ClassSYNOPSIS
This is a virtual base class, all configurators should be derived from it.DESCRIPTION
METHODS
- new
- Constructor, typically called like
my $config_parser = SomeConfigParser->new( file => $file, ); my $data = $config_parser->parse();
Instead of "file", the derived class "SomeConfigParser" may define any type of configuration input medium (e.g. "url => 'http://foobar'"). It just has to make sure its "parse()" method will later pull the input data from the medium specified.
The base class accepts a filename or a reference to an array of text lines:
-
- file
- Specifies a file which the "parse()" method later parses.
- text
- Specifies a reference to an array of scalars, representing configuration records (typically lines of a file). Also accepts a simple scalar, which it splits at its newlines and transforms it into an array:
my $config_parser = MyYAMLParser->new( text => ['foo: bar', 'baz: bam', ], ); my $data = $config_parser->parse();
If either "file" or "text" parameters have been specified in the constructor call, a later call to the configurator's "text()" method will return a reference to an array of configuration text lines. This will typically be used by the "parse()" method to process the input.
-
- parse
- Virtual method, needs to be defined by the derived class.
Parser requirements
- *
- If the parser provides variable substitution functionality, it has to implement it.
- *
- The parser's "parse()" method returns a reference to a hash of hashes (HoH). The top-most hash contains the top-level keywords ("category", "appender") as keys, associated with values which are references to more deeply nested hashes.
- *
- The "log4perl." prefix (e.g. as used in the PropertyConfigurator class) is stripped, it's not part in the HoH structure.
- *
- Each Log4perl config value is indicated by the "value" key, as in
$data->{category}->{Bar}->{Twix}->{value} = "WARN, Logfile"
EXAMPLES
The following Log::Log4perl configuration:log4perl.category.Bar.Twix = WARN, Screen log4perl.appender.Screen = Log::Log4perl::Appender::File log4perl.appender.Screen.filename = test.log log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout
needs to be transformed by the parser's "parse()" method into this data structure:
{ appender => { Screen => { layout => { value => "Log::Log4perl::Layout::SimpleLayout" }, value => "Log::Log4perl::Appender::Screen", }, }, category => { Bar => { Twix => { value => "WARN, Screen" } } } }
For a full-fledged example, check out the sample YAML parser implementation in "eg/yamlparser". It uses a simple YAML syntax to specify the Log4perl configuration to illustrate the concept.
SEE ALSO
Log::Log4perl::Config::PropertyConfiguratorLog::Log4perl::Config::DOMConfigurator
Log::Log4perl::Config::LDAPConfigurator (tbd!)
AUTHOR
Mike Schilli, <m@perlmeister.com>, 2004 Kevin Goess, <cpan@goess.org> Jan-2003Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre