webgui/lib/WebGUI/SQL/Trace.pm
2010-04-16 20:53:35 -05:00

55 lines
1,010 B
Perl

package WebGUI::SQL::Trace;
use strict;
#use warnings;
use 5.008008;
our $VERSION = '0.0.1';
sub PUSHED {
my ($class, $mode, $fh) = @_;
my $logger;
return bless \$logger, $class;
}
sub OPEN {
my ($self, $session, $mode, $fh) = @_;
$$self = $session;
return 1;
}
sub WRITE {
my ($self, $buf, $fh) = @_;
if ($buf =~ /\ABinding parameters: /) {
my $sql = $buf;
$sql =~ s/\ABinding parameters: //;
my $sub;
my $line;
for ( my $i = 0; caller($i); $i++) {
(my $package, undef, $line) = caller($i);
next
if $package eq 'WebGUI::SQL';
next
if $package eq 'WebGUI::SQL::ResultSet';
($sub) = (caller($i + 1))[3];
last;
}
$$self->log->debug("Query - $sub($line) : $sql");
}
return length($buf);
}
sub CLOSE {
my $self = shift;
return 0;
}
1;
__END__
=head1 NAME
PerlIO::via::WebGUI - Log DBI output to WebGUI
=cut