Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Config::BaseConfiguratUser)Contributed Perl DocumenConfig::BaseConfigurator(3)

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

       Log::Log4perl::Config::DOMConfigurator

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

LICENSE
       Copyright 2002-2013 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.

AUTHOR
       Please contribute patches to the	project	on Github:

	   http://github.com/mschilli/log4perl

       Send bug	reports	or requests for	enhancements to	the authors via	our

       MAILING LIST (questions,	bug reports, suggestions/patches):
       log4perl-devel@lists.sourceforge.net

       Authors (please contact them via	the list above,	not directly): Mike
       Schilli <m@perlmeister.com>, Kevin Goess	<cpan@goess.org>

       Contributors (in	alphabetical order): Ateeq Altaf, Cory Bennett,	Jens
       Berthold, Jeremy	Bopp, Hutton Davidson, Chris R.	Donnelly, Matisse
       Enzer, Hugh Esco, Anthony Foiani, James FitzGibbon, Carl	Franks,	Dennis
       Gregorovic, Andy	Grundman, Paul Harrington, Alexander Hartmaier	David
       Hull, Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
       Brett Rann, Peter Rabbitson, Erik Selberg, Aaron	Straup Cope, Lars
       Thegler,	David Viner, Mac Yang.

perl v5.32.0			  2020-07-22	   Config::BaseConfigurator(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | LICENSE | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Log::Log4perl::Config::BaseConfigurator&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help