STDERR auch in Datei schreiben
Kurt
- perl
Hi
habe ein debuggingproblem mit CGIs wo ich nicht auf die Apache-logs zugreifen kann.
Wie kann ich im laufenden Perlcode einstellen dass Fehlermeldungen _auch_ in eine Datei geschrieben werden.
Kann ich dass dann später wieder abstellen?
Funktioniert dass dann auch in Modulen?
Viele Grüße
Kurt
Moin!
Wie kann ich im laufenden Perlcode einstellen dass Fehlermeldungen _auch_ in eine Datei geschrieben werden.
Das ist etwas ungenau formuliert und ich weiß nicht, ob Dir das hier hilft:
open(STDERR, '>>', 'mylogfile.txt') or die "Geht nicht: $!\n";
wird STDERR *nur* in die mylogfile.txt geschrieben.
Wenn Du es *zusätzlich* dort haben willst, solltest Du Dir eine logger funktion schreiben z.B. so.
Wenn es Fehler sind, die Dein Script selbst hervorruft, geht das natürlich nicht.
-- Skeeve
Hell-O!
Wie kann ich im laufenden Perlcode einstellen dass Fehlermeldungen _auch_ in eine Datei geschrieben werden.
Du kannst die entsprechenden Signalhandler auf eine Funktion zeigen lassen, die das für dich erledigt. Näheres dazu und weitere mögliche Ansätze nebst jeder Menge Lesestoff findest du in diesem Archivthread.
Siechfred
Wie kann ich im laufenden Perlcode einstellen dass Fehlermeldungen _auch_ in eine Datei geschrieben werden.
suchst du CGI::Carp?
Struppi.
Hi
suchst du CGI::Carp?
danke für den tip, zum debuggen ist dass bestimmt gut und wird sofort eingesetzt. :)
Die doku sagt dass es außerhalb des debugging zuviel performance kostet.
Meine eigentliche Frage zielte aber auf sowas wie ein
open STDERR,"|tee -a stderr.log 1>&2"
hinaus ... habe es aber nicht zum laufen bekommen (die redirection von stdout auf stderr muss auch früher passieren).
Die Fehler sollen also ruhig noch im serverlog erscheinen. Scheint aber nicht trivial zu sein ...
tschau
Kurt