X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLXDebug.pm;h=553ab5037c0679d8f72ef3020e9db99a37c8cfae;hb=8f1192dd1fa78ac98bdf8fd045be28bdb862575c;hp=d32f458ade84c71337b1d950ba8f4c51c0852dc2;hpb=f844f1e26b05d90fbaec71b0e9cc016221a5f4b9;p=kivitendo-erp.git diff --git a/SL/LXDebug.pm b/SL/LXDebug.pm index d32f458ad..553ab5037 100644 --- a/SL/LXDebug.pm +++ b/SL/LXDebug.pm @@ -24,6 +24,7 @@ use YAML; use SL::Request (); use strict; +use utf8; my ($text_diff_available); @@ -129,10 +130,10 @@ sub show_backtrace { return 1 unless ($force || ($global_level & BACKTRACE_ON_ERROR)); - $self->message(BACKTRACE_ON_ERROR, "Starting full caller dump:"); + $self->message(0, "Starting full caller dump:"); my $level = 0; while (my ($dummy, $filename, $line, $subroutine) = caller $level) { - $self->message(BACKTRACE_ON_ERROR, " ${subroutine} from ${filename}:${line}"); + $self->message(0, " ${subroutine} from ${filename}:${line}"); $level++; } @@ -260,7 +261,8 @@ sub is_tracing_enabled { sub _write { no warnings; my ($self, $prefix, $message) = @_; - my $date = strftime("%Y-%m-%d %H:%M:%S $$ [" . getppid() . "] ${prefix}: ", localtime(time())); + my @now = gettimeofday(); + my $date = strftime("%Y-%m-%d %H:%M:%S." . sprintf('%03d', int($now[1] / 1000)) . " $$ [" . getppid() . "] ${prefix}: ", localtime($now[0])); local *FILE; chomp($message); @@ -272,6 +274,7 @@ sub _write_raw { local *FILE; if ((FILE_TARGET == $self->{"target"}) && open(FILE, ">>", $self->{"file"})) { + binmode FILE, ":utf8"; print FILE $message; close FILE; @@ -303,7 +306,12 @@ sub end_request { sub log_time { my ($self, @slurp) = @_; return 1 unless want_request_timer(); - $self->_write("time", $self->get_request_time() . (@slurp ? " (@slurp)" : '')); + + my $now = $self->get_request_time; + my $diff = int((($now - ($self->{previous_log_time} // 0)) * 10_000 + 5) / 10); + $self->{previous_log_time} = $now; + + $self->_write("time", "${now}s Δ ${diff}ms" . (@slurp ? " (@slurp)" : '')); } sub get_request_time {