• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

lib/Log/Dispatch/H11-Apr-2002-16648

t/H11-Apr-2002-8064

ChangesH A D11-Apr-2002224 95

MANIFESTH A D27-Nov-200197 98

Makefile.PLH A D11-Apr-2002285 1312

READMEH A D27-Nov-20012.4 KiB8662

README

1NAME
2    Log::Dispatch::DBI - Class for logging to database via DBI interface
3
4SYNOPSIS
5      use Log::Dispatch::DBI;
6
7      my $log = Log::Dispatch::DBI->new(
8          name       => 'dbi',
9          min_level  => 'info',
10          datasource => 'dbi:mysql:log',
11          username   => 'user',
12          password   => 'password',
13          table      => 'logging',
14      );
15
16      # Or, if your handle is alreaady connected
17      $log = Log::Dispatch::DBI->new(
18          name => 'dbi',
19          min_level => 'info',
20          dbh  => $dbh,
21      );
22
23      $log->log(level => 'emergency', messsage => 'something BAD happened');
24
25DESCRIPTION
26    Log::Dispatch::DBI is a subclass of Log::Dispatch::Output, which inserts
27    logging output into relational database using DBI interface.
28
29METHODS
30    new $log = Log::Dispatch::DBI->new(%params);
31
32        This method takes a hash of parameters. The following options are
33        valid:
34
35    -- name, min_level, max_level, callbacks
36        Same as various Log::Dispatch::* classes.
37
38    -- dbh
39        Database handle where Log::Dispatch::DBI throws log message.
40
41    -- datasource, username, password
42        If database connection is not yet established, put the DSN, username
43        and password for DBI connect method. Destructor method of
44        Log::Dispatch::DBI disconnects database handle, if the handle is
45        made inside by these parameters. (The method does not disconnect the
46        handle if it's supplied with `dbh' parameter.)
47
48    -- table
49        Table name for logging. default is log.
50
51    log_message
52        inherited from Log::Dispatch::Output.
53
54TABLE SCHEMA
55    Maybe something like this for MySQL.
56
57      CREATE TABLE log (
58          id        int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
59          level     varchar(9) NOT NULL,
60          message   text NOT NULL,
61          timestamp timestamp
62      );
63
64    For example,
65
66      $log->log(level => 'info', message => 'too bad');
67
68    will execute the following SQL:
69
70      INSERT INTO log (level, message) VALUES ('info', 'too bad');
71
72    If you change this behaviour, what you should do is to subclass
73    Log::Dispatch::DBI and override `create_statement' and `log_message'
74    method.
75
76AUTHOR
77    Tatsuhiko Miyagawa <miyagawa@bulknews.net>
78
79    This library is free software; you can redistribute it and/or modify it
80    under the same terms as Perl itself.
81
82SEE ALSO
83    the Log::Dispatch manpage, the DBI manpage, the Log::Dispatch::Config
84    manpage
85
86