X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLXDebug.pm;h=0503dcb6c8a6f33640dc3c55b125597e58e83cff;hb=05f8844cf548de3fc962b4935d679053d5edd030;hp=707b89230f3571a601c6ed617b866e9080fde5eb;hpb=c569daa13212ba1d634879ed512f2b51ce9c1533;p=kivitendo-erp.git diff --git a/SL/LXDebug.pm b/SL/LXDebug.pm index 707b89230..0503dcb6c 100644 --- a/SL/LXDebug.pm +++ b/SL/LXDebug.pm @@ -22,8 +22,8 @@ use Data::Dumper; use POSIX qw(strftime getpid); use Scalar::Util qw(blessed refaddr weaken); use Time::HiRes qw(gettimeofday tv_interval); -use YAML; use SL::Request (); +use SL::YAML; use strict; use utf8; @@ -161,6 +161,7 @@ sub clone_for_dump { my ($src, $dumped) = @_; return undef if !defined($src); + return $src if !ref($src); $dumped ||= {}; my $addr = refaddr($src); @@ -213,7 +214,7 @@ sub dump { sub dump_yaml { my ($self, $level, $name, $variable) = @_; - $self->message($level, "dumping ${name}:\n" . YAML::Dump($variable)); + $self->message($level, "dumping ${name}:\n" . SL::YAML::Dump($variable)); } sub dump_sql_result { @@ -252,7 +253,7 @@ sub show_diff { return; } - my @texts = map { ref $_ ? YAML::Dump($_) : $_ } ($item1, $item2); + my @texts = map { ref $_ ? SL::YAML::Dump($_) : $_ } ($item1, $item2); $self->message($level, Text::Diff::diff(\$texts[0], \$texts[1], \%params)); } @@ -325,7 +326,7 @@ sub _write_raw { sub level2string { no warnings; # use $_[0] as a bit mask and return levelstrings separated by / - join '/', qw(info debug1 debug2 query trace error_call_trace request_timer WARNING)[ grep { (reverse split //, sprintf "%08b", $_[0])[$_] } 0..7 ] + join '/', qw(info debug1 debug2 query trace error_call_trace request_timer request WARNING trace2 show_caller)[ grep { (reverse split //, sprintf "%011b", $_[0])[$_] } 0..11 ] } sub begin_request { @@ -348,7 +349,10 @@ sub log_time { return 1 unless want_request_timer(); my $now = $self->get_request_time; - my $diff = int((($now - ($self->{previous_log_time} // 0)) * 10_000 + 5) / 10); + + return 1 unless $now; + + my $diff = $self->{previous_log_time} ? int((($now - ($self->{previous_log_time} // 0)) * 10_000 + 5) / 10) : $now * 10_0000 + 5; $self->{previous_log_time} = $now; $self->_write("time", "${now}s Δ ${diff}ms" . (@slurp ? " (@slurp)" : ''));