Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 847d924b

Von Sven Schöling vor mehr als 14 Jahren hinzugefügt

  • ID 847d924bbcaa4f6021d74c408f71319074103880
  • Vorgänger 49ce0054
  • Nachfolger 22b2ad7f

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.

Unterschiede anzeigen:

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