NAME Log::Dispatch::DBI - Class for logging to database via DBI interface SYNOPSIS 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'); DESCRIPTION Log::Dispatch::DBI is a subclass of Log::Dispatch::Output, which inserts logging output into relational database using DBI interface. METHODS new $log = Log::Dispatch::DBI->new(%params); This method takes a hash of parameters. The following options are valid: -- name, min_level, max_level, callbacks Same as various Log::Dispatch::* classes. -- dbh Database handle where Log::Dispatch::DBI throws log message. -- datasource, username, password 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.) -- table Table name for logging. default is log. log_message inherited from Log::Dispatch::Output. TABLE SCHEMA 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. AUTHOR Tatsuhiko Miyagawa This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO the Log::Dispatch manpage, the DBI manpage, the Log::Dispatch::Config manpage