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

FreeBSD Manual Pages

  
 
  

home | help
Log::Handler::Config(3User Contributed Perl DocumentatiLog::Handler::Config(3)

NAME
       Log::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',
	   );

DESCRIPTION
       This 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.

METHODS
   config()
       With this method	it's possible to load the configuration	for your
       outputs.

       The following options are valid:

       config
	   With	this option you	can pass a file	name or	the configuration as a
	   hash	reference.

	       $log->config(config => 'file.conf');
	       # or
	       $log->config(config => \%config);

       plugin
	   With	this option it's possible to say which plugin you want to use.
	   Maybe you want to use the file extension "conf" with	"YAML",	which
	   is reserved for the plugin "Config::General".

	   Examples:

	       # this would use	Config::General
	       $log->config(
		   config => 'file.conf'
	       );

	       # this would force .conf	with YAML
	       $log->config(
		   config => 'file.conf',
		   plugin => 'YAML'
	       );

       section
	   If you want to write	the configuration into a global	configuration
	   file	then you can create a own section for the logger:

	       <logger>
		   <file>
		       filename	= file.log
		       minlevel	= emerg
		       maxlevel	= warning
		   </file>

		   <screen>
		       minlevel	= emerg
		       maxlevel	= debug
		   </screen>
	       </logger>

	       <another_script_config>
		   foo = bar
		   bar = baz
		   baz = foo
	       </another_script_config>

	   Now your configuration is placed in the "logger" section. You can
	   load	this section with

	       $log->config(
		   config  => 'file.conf',
		   section => 'logger',
	       );

	       # or if you load	the configuration yourself to %config

	       $log->config(
		   config  => \%config,
		   section => 'logger',
	       );

	       # or just

	       $log->config( config => $config{logger} );

PLUGINS
	   Config::General     -  inspired by the well known apache config format
	   Config::Properties  -  Java-style property files
	   YAML		       -  optimized for	human readability

EXAMPLES
   Config structures
       A 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 plugins
       Config::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

EXPORTS
       No exports.

REPORT BUGS
       Please report all bugs to <jschulz.cpan(at)bloonix.de>.

       If you send me a	mail then add Log::Handler into	the subject.

AUTHOR
       Jonny Schulz <jschulz.cpan(at)bloonix.de>.

COPYRIGHT
       Copyright (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.

perl v5.24.1			  2014-10-24	       Log::Handler::Config(3)

NAME | SYNOPSIS | DESCRIPTION | PLUGINS | METHODS | PLUGINS | EXAMPLES | PREREQUISITES | EXPORTS | REPORT BUGS | AUTHOR | COPYRIGHT

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

home | help