X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FLXDebug.pm;h=d3ab1e53a7ec8a66089d7385385b0845fdd5d038;hb=f9a93e326337ed219de49f575c02e5a8cb36a1b6;hp=80b41f95a091a5da28baa13caf19fe9d983d4148;hpb=6f6f2fd87e08cbe2d1b599b064823f499a7f910f;p=kivitendo-erp.git diff --git a/SL/LXDebug.pm b/SL/LXDebug.pm index 80b41f95a..d3ab1e53a 100644 --- a/SL/LXDebug.pm +++ b/SL/LXDebug.pm @@ -18,12 +18,13 @@ use constant FILE_TARGET => 0; use constant STDERR_TARGET => 1; use Data::Dumper; -use POSIX qw(strftime getppid); +use POSIX qw(strftime getpid); use Time::HiRes qw(gettimeofday tv_interval); use YAML; use SL::Request (); use strict; +use utf8; my ($text_diff_available); @@ -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)) . " $$ [" . getpid() . "] ${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; @@ -293,9 +296,10 @@ sub begin_request { } sub end_request { - my $self = shift; + my ($self, %params) = @_; return 1 unless want_request_timer(); - $self->_write("time", $self->get_request_time); + + $self->_write("time", sprintf('%f (%s/%s)', $self->get_request_time, $params{script_name}, $params{action})); $self->{calldepth} = 0; } @@ -303,7 +307,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 {