projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
OE: single-dbh
[kivitendo-erp.git]
/
SL
/
LXDebug.pm
diff --git
a/SL/LXDebug.pm
b/SL/LXDebug.pm
index
d32f458
..
d3ab1e5
100644
(file)
--- 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 constant STDERR_TARGET => 1;
use Data::Dumper;
-use POSIX qw(strftime getp
p
id);
+use POSIX qw(strftime getpid);
use Time::HiRes qw(gettimeofday tv_interval);
use YAML;
use SL::Request ();
use strict;
use Time::HiRes qw(gettimeofday tv_interval);
use YAML;
use SL::Request ();
use strict;
+use utf8;
my ($text_diff_available);
my ($text_diff_available);
@@
-129,10
+130,10
@@
sub show_backtrace {
return 1 unless ($force || ($global_level & BACKTRACE_ON_ERROR));
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) {
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++;
}
$level++;
}
@@
-260,7
+261,8
@@
sub is_tracing_enabled {
sub _write {
no warnings;
my ($self, $prefix, $message) = @_;
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);
local *FILE;
chomp($message);
@@
-272,6
+274,7
@@
sub _write_raw {
local *FILE;
if ((FILE_TARGET == $self->{"target"})
&& open(FILE, ">>", $self->{"file"})) {
local *FILE;
if ((FILE_TARGET == $self->{"target"})
&& open(FILE, ">>", $self->{"file"})) {
+ binmode FILE, ":utf8";
print FILE $message;
close FILE;
print FILE $message;
close FILE;
@@
-293,9
+296,10
@@
sub begin_request {
}
sub end_request {
}
sub end_request {
- my
$self = shift
;
+ my
($self, %params) = @_
;
return 1 unless want_request_timer();
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;
}
$self->{calldepth} = 0;
}
@@
-303,7
+307,12
@@
sub end_request {
sub log_time {
my ($self, @slurp) = @_;
return 1 unless want_request_timer();
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 {
}
sub get_request_time {