Whitespace in Kontennamen filtern
[kivitendo-erp.git] / SL / LXDebug.pm
index 016015f..c0983aa 100644 (file)
@@ -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);
 
@@ -261,7 +262,7 @@ sub _write {
   no warnings;
   my ($self, $prefix, $message) = @_;
   my @now  = gettimeofday();
-  my $date = strftime("%Y-%m-%d %H:%M:%S." . sprintf('%03d', int($now[1] / 1000)) . " $$ [" . getppid() . "] ${prefix}: ", localtime($now[0]));
+  my $date = strftime("%Y-%m-%d %H:%M:%S." . sprintf('%03d', int($now[1] / 1000)) . " $$ [" . getpid() . "] ${prefix}: ", localtime($now[0]));
   local *FILE;
 
   chomp($message);
@@ -273,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;
 
@@ -304,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 {