Log::Dispatch::DBI - Class for logging to database via DBI interface
use Log::Dispatch::DBI; my $log = Log::Dispatch::DBI->new( name => 'dbi', min_level => 'info', datasource => 'dbi:mysql:log', username => 'user', password => 'password', table => 'logging', ); # Or, if your handle is alreaady connected $log = Log::Dispatch::DBI->new( name => 'dbi', min_level => 'info', dbh => $dbh, ); $log->log(level => 'emergency', messsage => 'something BAD happened');
Log::Dispatch::DBI is a subclass of Log::Dispatch::Output, which inserts logging output into relational database using DBI interface.
$log = Log::Dispatch::DBI->new(%params);
This method takes a hash of parameters. The following options are valid:
Same as various Log::Dispatch::* classes.
Database handle where Log::Dispatch::DBI throws log message.
If database connection is not yet established, put the DSN, username and password for DBI connect method. Destructor method of Log::Dispatch::DBI disconnects database handle, if the handle is made inside by these parameters. (The method does not disconnect the handle if it's supplied with dbh parameter.)
dbh
Table name for logging. default is log.
inherited from Log::Dispatch::Output.
Maybe something like this for MySQL.
CREATE TABLE log ( id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT, level varchar(9) NOT NULL, message text NOT NULL, timestamp timestamp );
For example,
$log->log(level => 'info', message => 'too bad');
will execute the following SQL:
INSERT INTO log (level, message) VALUES ('info', 'too bad');
If you change this behaviour, what you should do is to subclass Log::Dispatch::DBI and override create_statement and log_message method.
create_statement
log_message
Tatsuhiko Miyagawa <miyagawa@bulknews.net>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Log::Dispatch, DBI, Log::Dispatch::Config
To install Log::Dispatch::DBI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Log::Dispatch::DBI
CPAN shell
perl -MCPAN -e shell install Log::Dispatch::DBI
For more information on module installation, please visit the detailed CPAN module installation guide.