use strict;
use warnings;
use Log::Log4perl;
# initialize logging
Log::Log4perl->init('log4perl.conf');
my $log = Log::Log4perl->get_logger();
# perform some logging including MDC
$log->info("Logging initialized");
Log::Log4perl::MDC->put("MDC_key", "my MDC value");
$log->info("MDC used");
####
log4perl.rootLogger = TRACE, app_screen, app_db
# configuration for screen appender
log4perl.appender.app_screen = Log::Log4perl::Appender::Screen
log4perl.appender.app_screen.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.app_screen.layout.ConversionPattern = [%p] %m{indent}%n
# configuration for database logging
log4perl.appender.app_db = Log::Log4perl::Appender::DBI
log4perl.appender.app_db.datasource = dbi:SQLite:uri=file:log4perl.sqlite
log4perl.appender.app_db.sql = \
insert into log \
(priority, my_key, message) \
values (?, ?, ? ) \
log4perl.appender.app_db.params.1 = %p
log4perl.appender.app_db.params.2 = %X{MDC_key}
log4perl.appender.app_db.usePreparedStm = 1
log4perl.appender.app_db.warp_message = 0
log4perl.appender.app_db.attrs.f_encoding = utf8
log4perl.appender.app_db.layout = Log::Log4perl::Layout::NoopLayout
####
Log4perl: DBI->prepare failed no such table: log
insert into log (priority, my_key, message) values (?, ?, ? ) at C:\Users\bloeckm\Perl\DB_logging\log4perl_dbi_demo.pl line 13.