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.
%::myconfig = ();
%::called_subs = (); # currently used for recursion detection
}
%::myconfig = ();
%::called_subs = (); # currently used for recursion detection
}
+
+ $SIG{__WARN__} = sub {
+ $::lxdebug->warn(@_);
+ }
}
sub pre_startup_checks {
}
sub pre_startup_checks {
use constant TRACE => 1 << 4;
use constant BACKTRACE_ON_ERROR => 1 << 5;
use constant REQUEST_TIMER => 1 << 6;
use constant TRACE => 1 << 4;
use constant BACKTRACE_ON_ERROR => 1 << 5;
use constant REQUEST_TIMER => 1 << 6;
-use constant ALL => (1 << 7) - 1;
+use constant WARN => 1 << 7;
+use constant ALL => (1 << 8) - 1;
use constant DEVEL => INFO | QUERY | TRACE | BACKTRACE_ON_ERROR | REQUEST_TIMER;
use constant FILE_TARGET => 0;
use constant DEVEL => INFO | QUERY | TRACE | BACKTRACE_ON_ERROR | REQUEST_TIMER;
use constant FILE_TARGET => 0;
- my ($self, $level) = @_;
- $level *= 1;
+ my $self = shift;
+ 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 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
- my ($self, $level) = @_;
- $level *= 1;
+ my $self = shift;
+ 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 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
my ($self, $level, $message) = @_;
$self->_write(level2string($level), $message) if (($self->{"level"} | $global_level) & $level || !$level);
}
my ($self, $level, $message) = @_;
$self->_write(level2string($level), $message) if (($self->{"level"} | $global_level) & $level || !$level);
}
+sub warn {
+ no warnings;
+ my ($self, $message) = @_;
+ $self->message(WARN, $message);
+}
sub dump {
my ($self, $level, $name, $variable) = @_;
sub dump {
my ($self, $level, $name, $variable) = @_;
my ($self, $prefix, $message) = @_;
my $date = strftime("%Y-%m-%d %H:%M:%S $$ [" . getppid() . "] ${prefix}: ", localtime(time()));
local *FILE;
my ($self, $prefix, $message) = @_;
my $date = strftime("%Y-%m-%d %H:%M:%S $$ [" . getppid() . "] ${prefix}: ", localtime(time()));
local *FILE;
# use $_[0] as a bit mask and return levelstrings separated by /
# use $_[0] as a bit mask and return levelstrings separated by /
- join '/', qw(info debug1 debug2 query trace error_call_trace)[ grep { (reverse split //, sprintf "%05b", $_[0])[$_] } 0..5 ]
+ join '/', qw(info debug1 debug2 query trace error_call_trace request_timer WARNING)[ grep { (reverse split //, sprintf "%08b", $_[0])[$_] } 0..7 ]
# LXDebug::TRACE - Tracing von Funktionsaufrufen
# LXDebug::BACKTRACE_ON_ERROR - Vollständiger Aufrufpfad, wenn $form->error() aufgerufen wird
# LXDebug::REQUEST_TIMER - Timing von Requests loggen
# LXDebug::TRACE - Tracing von Funktionsaufrufen
# LXDebug::BACKTRACE_ON_ERROR - Vollständiger Aufrufpfad, wenn $form->error() aufgerufen wird
# LXDebug::REQUEST_TIMER - Timing von Requests loggen
+# LXDebug::WARN - warnings
# LXDebug::ALL - alle Debugausgaben
#
# LXDebug::DEVEL - wie INFO | QUERY | TRACE | BACKTRACE_ON_ERROR
# LXDebug::ALL - alle Debugausgaben
#
# LXDebug::DEVEL - wie INFO | QUERY | TRACE | BACKTRACE_ON_ERROR
# weshalb sie normalerweise deaktiviert ist.
$LXDebug::watch_form = 0;
# weshalb sie normalerweise deaktiviert ist.
$LXDebug::watch_form = 0;
+# Zum debuggen von Latexausgaben. Wenn diese Option auf 1 gesetzt wird, werden
+# temporäre Dateien, die bei der Erstellung von PDFs aus Latex erzeugt werden,
+# nach Abschluß der Erstellung oder im Fehlerfall nicht gelöscht, damit man sie
+# untersuchen kann.
+$::keep_temp_files = 0;
+
# LXDebug::QUERY - SQL Queries
# LXDebug::TRACE - Tracing von Funktionsaufrufen
# LXDebug::BACKTRACE_ON_ERROR - Vollständiger Aufrufpfad, wenn $form->error() aufgerufen wird
# LXDebug::QUERY - SQL Queries
# LXDebug::TRACE - Tracing von Funktionsaufrufen
# LXDebug::BACKTRACE_ON_ERROR - Vollständiger Aufrufpfad, wenn $form->error() aufgerufen wird
+# LXDebug::REQUEST_TIMER - Timing von Requests loggen
+# LXDebug::WARN - warnings
# LXDebug::ALL - alle Debugausgaben
#
# LXDebug::DEVEL - wie INFO | QUERY | TRACE | BACKTRACE_ON_ERROR
# LXDebug::ALL - alle Debugausgaben
#
# LXDebug::DEVEL - wie INFO | QUERY | TRACE | BACKTRACE_ON_ERROR