Revision 847d924b
Von Sven Schöling vor mehr als 14 Jahren hinzugefügt
SL/Dispatcher.pm | ||
---|---|---|
82 | 82 |
%::myconfig = (); |
83 | 83 |
%::called_subs = (); # currently used for recursion detection |
84 | 84 |
} |
85 |
|
|
86 |
$SIG{__WARN__} = sub { |
|
87 |
$::lxdebug->warn(@_); |
|
88 |
} |
|
85 | 89 |
} |
86 | 90 |
|
87 | 91 |
sub pre_startup_checks { |
SL/LXDebug.pm | ||
---|---|---|
8 | 8 |
use constant TRACE => 1 << 4; |
9 | 9 |
use constant BACKTRACE_ON_ERROR => 1 << 5; |
10 | 10 |
use constant REQUEST_TIMER => 1 << 6; |
11 |
use constant ALL => (1 << 7) - 1; |
|
11 |
use constant WARN => 1 << 7; |
|
12 |
use constant ALL => (1 << 8) - 1; |
|
12 | 13 |
use constant DEVEL => INFO | QUERY | TRACE | BACKTRACE_ON_ERROR | REQUEST_TIMER; |
13 | 14 |
|
14 | 15 |
use constant FILE_TARGET => 0; |
... | ... | |
65 | 66 |
} |
66 | 67 |
|
67 | 68 |
sub enter_sub { |
68 |
my ($self, $level) = @_;
|
|
69 |
$level *= 1;
|
|
69 |
my $self = shift;
|
|
70 |
my $level = shift || 0;
|
|
70 | 71 |
|
71 | 72 |
return 1 unless ($global_level & TRACE); # ignore if traces aren't active |
72 | 73 |
return 1 if $level && !($global_level & $level); # ignore if level of trace isn't active |
... | ... | |
89 | 90 |
} |
90 | 91 |
|
91 | 92 |
sub leave_sub { |
92 |
my ($self, $level) = @_;
|
|
93 |
$level *= 1;
|
|
93 |
my $self = shift;
|
|
94 |
my $level = shift || 0;
|
|
94 | 95 |
|
95 | 96 |
return 1 unless ($global_level & TRACE); # ignore if traces aren't active |
96 | 97 |
return 1 if $level && !($global_level & $level); # ignore if level of trace isn't active |
... | ... | |
125 | 126 |
} |
126 | 127 |
|
127 | 128 |
sub message { |
129 |
no warnings; |
|
128 | 130 |
my ($self, $level, $message) = @_; |
129 | 131 |
|
130 | 132 |
$self->_write(level2string($level), $message) if (($self->{"level"} | $global_level) & $level || !$level); |
131 | 133 |
} |
134 |
sub warn { |
|
135 |
no warnings; |
|
136 |
my ($self, $message) = @_; |
|
137 |
$self->message(WARN, $message); |
|
138 |
} |
|
132 | 139 |
|
133 | 140 |
sub dump { |
134 | 141 |
my ($self, $level, $name, $variable) = @_; |
... | ... | |
210 | 217 |
} |
211 | 218 |
|
212 | 219 |
sub _write { |
220 |
no warnings; |
|
213 | 221 |
my ($self, $prefix, $message) = @_; |
214 | 222 |
my $date = strftime("%Y-%m-%d %H:%M:%S $$ [" . getppid() . "] ${prefix}: ", localtime(time())); |
215 | 223 |
local *FILE; |
... | ... | |
227 | 235 |
} |
228 | 236 |
|
229 | 237 |
sub level2string { |
238 |
no warnings; |
|
230 | 239 |
# use $_[0] as a bit mask and return levelstrings separated by / |
231 |
join '/', qw(info debug1 debug2 query trace error_call_trace)[ grep { (reverse split //, sprintf "%05b", $_[0])[$_] } 0..5 ]
|
|
240 |
join '/', qw(info debug1 debug2 query trace error_call_trace request_timer WARNING)[ grep { (reverse split //, sprintf "%08b", $_[0])[$_] } 0..7 ]
|
|
232 | 241 |
} |
233 | 242 |
|
234 | 243 |
sub begin_request { |
config/lx-erp.conf | ||
---|---|---|
101 | 101 |
# LXDebug::TRACE - Tracing von Funktionsaufrufen |
102 | 102 |
# LXDebug::BACKTRACE_ON_ERROR - Vollst?ndiger Aufrufpfad, wenn $form->error() aufgerufen wird |
103 | 103 |
# LXDebug::REQUEST_TIMER - Timing von Requests loggen |
104 |
# LXDebug::WARN - warnings |
|
104 | 105 |
# LXDebug::ALL - alle Debugausgaben |
105 | 106 |
# |
106 | 107 |
# LXDebug::DEVEL - wie INFO | QUERY | TRACE | BACKTRACE_ON_ERROR |
... | ... | |
116 | 117 |
# weshalb sie normalerweise deaktiviert ist. |
117 | 118 |
$LXDebug::watch_form = 0; |
118 | 119 |
|
120 |
# Zum debuggen von Latexausgaben. Wenn diese Option auf 1 gesetzt wird, werden |
|
121 |
# tempor?re Dateien, die bei der Erstellung von PDFs aus Latex erzeugt werden, |
|
122 |
# nach Abschlu? der Erstellung oder im Fehlerfall nicht gel?scht, damit man sie |
|
123 |
# untersuchen kann. |
|
124 |
$::keep_temp_files = 0; |
|
125 |
|
|
119 | 126 |
1; |
config/lx-erp.conf.default | ||
---|---|---|
99 | 99 |
# LXDebug::QUERY - SQL Queries |
100 | 100 |
# LXDebug::TRACE - Tracing von Funktionsaufrufen |
101 | 101 |
# LXDebug::BACKTRACE_ON_ERROR - Vollst?ndiger Aufrufpfad, wenn $form->error() aufgerufen wird |
102 |
# LXDebug::REQUEST_TIMER - Timing von Requests loggen |
|
103 |
# LXDebug::WARN - warnings |
|
102 | 104 |
# LXDebug::ALL - alle Debugausgaben |
103 | 105 |
# |
104 | 106 |
# LXDebug::DEVEL - wie INFO | QUERY | TRACE | BACKTRACE_ON_ERROR |
Auch abrufbar als: Unified diff
Neue Option in LXDebug: LXDebug->WARN.
Sämtliche Perl warnings die auftreten, werden jetzt über einen
Sighandler an LXDebug weitergeleitet, und werden, sofern gewünscht,
in das LxOffice Log geschrieben.
Das ganze soll später dazu dienen, inkrementell die Module von warnings zu
befreien, und später dann das Programm im globalen -w Modus laufen lassen zu
können.