13 |
use Scalar::Util qw/blessed/; |
use Scalar::Util qw/blessed/; |
14 |
use Storable qw/dclone/; |
use Storable qw/dclone/; |
15 |
use Carp qw/carp/; |
use Carp qw/carp/; |
16 |
|
use POSIX; |
17 |
|
|
18 |
sub new { |
sub new { |
19 |
my ($class, $host, $port, $options) = @_; |
my ($class, $host, $port, $options) = @_; |
126 |
|
|
127 |
my @caller_name = ( qw/package file line sub/ ); |
my @caller_name = ( qw/package file line sub/ ); |
128 |
my @caller = caller(0); |
my @caller = caller(0); |
129 |
|
$caller[3] = (caller(1))[3]; |
130 |
$caller[3] =~ s{^.+::}{}; # stip package name from sub |
$caller[3] =~ s{^.+::}{}; # stip package name from sub |
131 |
$data->{ $caller_name[$_] } = $caller[$_] foreach ( 0 .. $#caller_name ); |
$data->{ $caller_name[$_] } = $caller[$_] foreach ( 0 .. $#caller_name ); |
132 |
|
|
133 |
my $caller; |
if ( $ENV{DEBUG} ) { |
134 |
my $depth = 0; |
|
135 |
while ( my @c = caller($depth) ) { |
my $caller; |
136 |
push @$caller, [ splice(@c,0,4) ]; |
my $depth = 0; |
137 |
$depth++; |
while ( my @c = caller($depth) ) { |
138 |
} |
push @$caller, [ @c ]; |
139 |
|
$depth++; |
140 |
|
} |
141 |
|
|
142 |
$data->{caller} = $caller; |
$data->{caller} = $caller; |
143 |
|
|
144 |
|
} |
145 |
|
|
146 |
# carp 'audit ', dump($data); |
# carp 'audit ', dump($data); |
147 |
|
|
148 |
$time = int($time); # reduce granularity for url |
# $time = int($time); # reduce granularity for url |
149 |
|
$time = strftime("%Y-%m-%d.%H:%M:%S", localtime $time); |
150 |
my $package = $caller[0]; |
my $package = $caller[0]; |
151 |
$audit->put( "pxelator/$time.$package.$url", $data ); |
$audit->put( "pxelator/$time.$package.$url", $data ); |
152 |
|
|