--- lib/PXElator/CouchDB.pm 2009/08/17 00:52:51 240 +++ lib/PXElator/CouchDB.pm 2010/01/23 18:31:14 482 @@ -13,6 +13,7 @@ use Scalar::Util qw/blessed/; use Storable qw/dclone/; use Carp qw/carp/; +use POSIX; sub new { my ($class, $host, $port, $options) = @_; @@ -121,17 +122,36 @@ $url =~ s/\s+-\S+//g; # remove command line options $url =~ s/\W+/-/g; - my ( $package, $file, $line, $sub ) = caller(1); - ( $package, undef, $line ) = caller(0) if ! $package || $package eq 'main'; - my $time = time(); - $sub =~ s{^.+::}{}; # stip package name - $data->{$_} = eval '$' . $_ foreach ( qw/time package line sub/ ); + my @caller = caller(1); # skip store wrapper + $caller[3] = (caller(1))[3]; + $caller[3] =~ s{^.+::}{}; # stip package name from sub + $data->{package} = { + time => $time, + name => $caller[0], + line => $caller[2], + caller => $caller[3], + }; + + if ( $ENV{DEBUG} ) { + + my $caller; + my $depth = 0; + while ( my @c = caller($depth) ) { + push @$caller, [ @c ]; + $depth++; + } + + $data->{caller} = $caller; + + } # carp 'audit ', dump($data); - $time = int($time); # reduce granularity +# $time = int($time); # reduce granularity for url + $time = strftime("%Y-%m-%d.%H:%M:%S", localtime $time); + my $package = $caller[0]; $audit->put( "pxelator/$time.$package.$url", $data ); }