package Apache::LogDBI;
# file: Apache/LogDBI.pm
use Apache::Constants qw(:common);

use strict;
use DBI ();
use Apache::Util qw(ht_time);

use constant DSN       => 'dbi:mysql:test_www';
use constant DB_TABLE  => 'access_log';
use constant DB_AUTH   => ':';

sub handler {
    my $orig = shift;
    my $r = $orig->last;
    my $date    = ht_time($orig->request_time, '%Y-%m-%d %H:%M:%S', 0);
    my $host    = $r->get_remote_host;
    my $method  = $r->method;
    my $url     = $orig->uri;
    my $user    = $r->connection->user;
    my $referer = $r->header_in('Referer');
    my $browser = $r->header_in('User-agent');
    my $status  = $orig->status;
    my $bytes   = $r->bytes_sent;

    my $dbh = DBI->connect(DSN, split ':', DB_AUTH) || die DBI->errstr;
    my $sth = $dbh->prepare("INSERT INTO ${\DB_TABLE} VALUES(?,?,?,?,?,?,?,?,?)") || die $dbh->errstr;

    $sth->execute($date,$host,$method,$url,$user,
		  $browser,$referer,$status,$bytes);
    return OK;
}

1;
__END__
