From edbbcd58bbc9e042771b68510b3986f826d195d9 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 1 Jul 2011 13:35:24 +0200 Subject: [PATCH] enter_sub(2)/leave_sub(2) nur loggen, wenn TRACE2 als Log-Level gesetzt ist MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bisher wurde das Argument als normales Log-Level interpretiert, was DEBUG1 entsprach. Das ist aber unintuitiv und macht es relativ sinnlos, DEBUG1 zu benutzen, weil es zusammen mit TRACE plötzlich alle enter_sub(2)/leave_sub(2)-Calls mit angezeigt hat. --- SL/LXDebug.pm | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/SL/LXDebug.pm b/SL/LXDebug.pm index 895b3f266..36812c529 100644 --- a/SL/LXDebug.pm +++ b/SL/LXDebug.pm @@ -9,8 +9,9 @@ use constant TRACE => 1 << 4; use constant BACKTRACE_ON_ERROR => 1 << 5; use constant REQUEST_TIMER => 1 << 6; use constant WARN => 1 << 7; -use constant ALL => (1 << 8) - 1; -use constant DEVEL => INFO | QUERY | TRACE | BACKTRACE_ON_ERROR | REQUEST_TIMER; +use constant TRACE2 => 1 << 8; +use constant ALL => (1 << 9) - 1; +use constant DEVEL => INFO | DEBUG1 | QUERY | TRACE | BACKTRACE_ON_ERROR | REQUEST_TIMER; use constant FILE_TARGET => 0; use constant STDERR_TARGET => 1; @@ -88,7 +89,7 @@ sub enter_sub { my $level = shift || 0; return 1 unless ($global_level & TRACE); # ignore if traces aren't active - return 1 if $level && !($global_level & $level); # ignore if level of trace isn't active + return 1 if $level && !($global_level & TRACE2); # ignore if level of trace isn't active my ($package, $filename, $line, $subroutine) = caller(1); my ($dummy1, $self_filename, $self_line) = caller(0); @@ -112,7 +113,7 @@ sub leave_sub { my $level = shift || 0; return 1 unless ($global_level & TRACE); # ignore if traces aren't active - return 1 if $level && !($global_level & $level); # ignore if level of trace isn't active + return 1 if $level && !($global_level & TRACE2); # ignore if level of trace isn't active my ($package, $filename, $line, $subroutine) = caller(1); my ($dummy1, $self_filename, $self_line) = caller(0); @@ -382,7 +383,15 @@ Log all queries executed by the L utility methods. =item C -Log sub calls and exits via the L/L functions. +Log sub calls and exits via the L/L functions, +but only if they're called with a log level that is falsish +(e.g. none, C, 0). + +=item C + +Log sub calls and exits via the L/L functions +even if they're called with a log level of 2. Will only have an effect +if C is set as well. =item C @@ -495,8 +504,8 @@ Pairs of these can be put near the beginning/end of a sub. They'll cause a trace to be written to the log file if the C level is active. -If C<$level> is given then the log messages will only be logged if an -additional log level C<$level> is active as well. +If C<$level> is given then the log messages will only be logged if the +global log level C is active as well. =item C -- 2.20.1