NAME

Dancer2::Logger::Log4perl - Dancer2 logger interface for Log4perl.

VERSION

version 0.07

SYNOPSIS

In your config.yml:

logger: log4perl
log: core
engines:
   logger:
      log4perl:
         config_file: log4perl.conf
         category: "My Super Awesome App"

In your log4perl.conf:

log4perl.rootLogger              = DEBUG, LOG1
log4perl.appender.LOG1           = Log::Log4perl::Appender::File
log4perl.appender.LOG1.filename  = /var/log/mylog.log
log4perl.appender.LOG1.mode      = append
log4perl.appender.LOG1.layout    = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOG1.layout.ConversionPattern = %d %p %m %n

DESCRIPTION

This class is an interface between Dancer2's logging engine abstraction layer and the Log::Log4perl library. In order to use it, you have to set the logger engine to log4perl.

Dancer2's core level messages are passed to Log4perl as level trace but will not be passed unless Dancer2's log config is core.

log should be set a lower priority than the lowest priority as set in your Log4perl configuration. If it isn't, the log messages will not be passed to Log4perl.

CONFIGURATION

If you don't specify config_file then Log4perl will easy init with the appropriate log level, as specified by Dancer2.

config_file

You can specify the log4perl configuration file using the config_file option:

logger: log4perl
engines:
   logger:
      log4perl:
         config_file: log4perl.conf
config_watch_interval

You can optionally specify the watch interval, either in seconds or as 'HUP':

logger: log4perl
engines:
   logger:
      log4perl:
         config_file: log4perl.conf
         config_watch_interval: 30
category

Log::Log4perl creates a single instance of itself for each category of logger you create in your application; to that end, this setting lets you specify the category for your Dancer2 application. If no category is provided, your application name will be used by default.

LOG FORMATTING

You can use Dancer2's built in log formatting functionality (via the log_format config option), use a log layout specified in Log4perl, or a combination of the two. If you plan to use Log4perl to control all the formatting, we recommend you use the following log format:

logger: log4perl
engines:
   logger:
      log4perl:
         config_file: log4perl.conf
         log_format: "%m"

This ensures that only the log message itself is passed to Log4perl.

CREDITS

This was originally developed by Ryan Larscheidt and Jon Miner at the University of Wisconsin. The initial version of this was built upon their final version. I cannot thank them enough for their work on this - it not only solved my needs at $work, but also plugs a hole in our ecosystem.

AUTHOR

Jason A. Crome <cpan@jason.cromedome.dev>

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by Jason A. Crome.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.