Thread Manipulierung von __DIE__ und __WARN__ (17 answers)
Opened by bloonix at 2007-06-05 13:45

bloonix
 2007-06-05 17:41
#77250 #77250
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Strat,05.06.2007, 12:21]eigentlich nichts; nur sollte man auch direkt auf STDERR (oder STDOUT) mitbekommen, wenn ein programm stirbt, und nicht erst aus einer Logdatei.[/quote]
Hallo Strat,

mein Hintergrund ist folgender:

Wenn zum Beispiel ein Skript via Cron gestartet wird, dann möchte ich
nicht, dass die Meldung in die lokale Mailbox wandert, sondern ins Logfile,
also dorthin, wo sie sinngemäß hingehört.

Aus diesem Grund habe ich auch

Code: (dl )
$log->error(@_) && exit(9)

geschrieben. Falls das Loggen des Fehlers in die Logdatei aus irgendeinem
Grund nicht funktioniert, dann wird exit() nicht ausgeführt und die Meldung
wird auf STDERR auf jeden Fall ausgegeben. Natürlich kann man sich noch
andere Konstrukte ausdenken und die Subroutine anders gestalten, zum
Beispiel:

Code: (dl )
$SIG{__DIE__} = sub { print STDERR @_; $log->error(@_); exit(9) }

Mir ging es primär um die Manipulierung von __DIE__ und __WARN__. In der
perldoc steht, dass dies nicht gern gesehen wird, deshalb wollte ich mir
noch einmal ein paar Meinungen einholen. =)

Es ist aber schön zu lesen, dass du darin kein Problem siehst.

Gruss,
opi\n\n

<!--EDIT|opi|1181050923-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread Manipulierung von __DIE__ und __WARN__