manpagez: man pages & more
man Log::Log4perl::Config::BaseConfigurator(3)
Home | html | info | man
Config::BaseConfigurator(3)                User Contributed Perl Documentation



NAME

       Log::Log4perl::Config::BaseConfigurator - Configurator Base Class


SYNOPSIS

       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
       o   If the parser provides variable substitution functionality, it has
           to implement it.

       o   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.

       o   The "log4perl." prefix (e.g. as used in the PropertyConfigurator
           class) is stripped, it's not part in the HoH structure.

       o   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::PropertyConfigurator(3)

       Log::Log4perl::Config::DOMConfigurator(3)

       Log::Log4perl::Config::LDAPConfigurator(3) (tbd!)


LICENSE

       Copyright 2002-2026 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.

perl v5.34.3                      2026-08-15       Config::BaseConfigurator(3)

log-log4perl 1.580.0 - Generated Tue Aug 25 18:28:14 CDT 2026
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.