Kurt: STDERR auch in Datei schreiben

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

  1. 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

  2. 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

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    Welcome To Carcass Cuntry || Steuerfreie Geburtsbeihilfen?  || RT 221 Erfurt-Altstadt i.V.
  3. Wie kann ich im laufenden Perlcode einstellen dass Fehlermeldungen _auch_ in eine Datei geschrieben werden.

    suchst du CGI::Carp?

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. 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