X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLXDebug.pm;h=43ad76a99375558c7277d9c4821b4339e865b21c;hb=d4f9d559a4a4d5e8fa2bb10be268e24634169b5e;hp=5f5ddf21662d1c0b70b76d3f83062c459e926e63;hpb=1aa5f1b3c2453672e403cc45d140429747794cf6;p=kivitendo-erp.git diff --git a/SL/LXDebug.pm b/SL/LXDebug.pm index 5f5ddf216..43ad76a99 100644 --- a/SL/LXDebug.pm +++ b/SL/LXDebug.pm @@ -14,7 +14,7 @@ use constant DEVEL => INFO | QUERY | TRACE | BACKTRACE_ON_ERROR | R use constant FILE_TARGET => 0; use constant STDERR_TARGET => 1; -use POSIX qw(strftime); +use POSIX qw(strftime getppid); use Time::HiRes qw(gettimeofday tv_interval); use YAML; @@ -75,12 +75,13 @@ sub enter_sub { my ($dummy1, $self_filename, $self_line) = caller(0); my $indent = " " x $self->{"calldepth"}++; + my $time = $self->get_request_time || ''; if (!defined($package)) { - $self->_write('sub' . $level, $indent . "\\ top-level?\n"); + $self->_write('sub' . $level, $indent . "\\ $time top-level?\n"); } else { $self->_write('sub' . $level, $indent - . "\\ ${subroutine} in " + . "\\ $time ${subroutine} in " . "${self_filename}:${self_line} called from " . "${filename}:${line}\n"); } @@ -98,11 +99,12 @@ sub leave_sub { my ($dummy1, $self_filename, $self_line) = caller(0); my $indent = " " x --$self->{"calldepth"}; + my $time = $self->want_request_timer ? $self->get_request_time : ''; if (!defined($package)) { - $self->_write('sub' . $level, $indent . "/ top-level?\n"); + $self->_write('sub' . $level, $indent . "/ $time top-level?\n"); } else { - $self->_write('sub' . $level, $indent . "/ ${subroutine} in " . "${self_filename}:${self_line}\n"); + $self->_write('sub' . $level, $indent . "/ $time ${subroutine} in " . "${self_filename}:${self_line}\n"); } return 1; } @@ -209,7 +211,7 @@ sub is_tracing_enabled { sub _write { my ($self, $prefix, $message) = @_; - my $date = strftime("%Y-%m-%d %H:%M:%S $$ ${prefix}: ", localtime(time())); + my $date = strftime("%Y-%m-%d %H:%M:%S $$ [" . getppid() . "] ${prefix}: ", localtime(time())); local *FILE; chomp($message); @@ -231,16 +233,30 @@ sub level2string { sub begin_request { my $self = shift; - return 1 unless ($global_level & REQUEST_TIMER); - $self->{request_start} = [gettimeofday]; + return 1 unless want_request_timer(); + $self->set_request_timer; } sub end_request { my $self = shift; - return 1 unless ($global_level & REQUEST_TIMER); - $self->_write("time", tv_interval($self->{request_start})); + return 1 unless want_request_timer(); + $self->_write("time", $self->get_request_time); $self->{calldepth} = 0; } +sub get_request_time { + my $self = shift; + return $self->want_request_timer && $self->{request_start} ? tv_interval($self->{request_start}) : undef; +} + +sub set_request_timer { + my $self = shift; + $self->{request_start} = [gettimeofday]; +} + +sub want_request_timer { + $global_level & REQUEST_TIMER; +} + 1;