http://www.perlmonks.org?node_id=880419

tune has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks! I am stuck with setting up DBIx::Log4perl in a database wrapper module. I am able to fire it up and all DBI methods like connect/prepare/execute are logging fine. However I'd also like the user to be able to send warnings/errors/notices into the same logfile. I'd tried a lots of ways to do it but none worked. Does anyone have a good working example of this? My init looks like the following:
my $logfile = "/tmp/sybase_wrapper_xlog_$callerfile"; Log::Log4perl::init(\ qq{ log4perl.logger.DBIx.Log4perl = DEBUG, A1 log4perl.appender.A1 = Log::Log4perl::Appender::File log4perl.appender.A1.filename = $logfile log4perl.appender.A1.mode = append log4perl.appender.A1.layout = Log::Log4perl::Layout::Pattern +Layout log4perl.appender.A1.layout.ConversionPattern=%d [%r] %P %C %p +> %H:%F{1}:%L %M - %m%n });
Then it should be something like this:
my $log = Log::Log4perl->get_logger(); $log->debug("Debug message"); $log->info("Info message"); $log->error("1234 Error message");
But it's not working. Nothing shows up in the logfile, only the messages generated by DBI. Perhaps I am missing something at the get_logger method, which I can't figure out, any suggestions? Thanks!

--
tune

Replies are listed 'Best First'.
Re: DBIx::Log4perl -- how to log my own errors
by mje (Curate) on Jan 04, 2011 at 17:38 UTC

    You need to get a log handle for the same section in you init file as the one DBIx::Log4perl is using which is 'DBIx::Log4perl'. You should also look at dbix_l4p_log in the DBIx::Log4perl documentation. Also, read Log::Log4perl which explains loggers.