Moin moin!
Wie lassen sich unter Unix (genauer AIX 4) Fehlermeldungen in eine Datei umleiten?
Fuer die Kommandozeile wurde Dir das ja bereits erklaert.
Ich habe ein kleines Perlscript, das manchmal sehr lange Fehlermeldungen erzeugt die ich _komplett_ sehen will. Da ich aber ueber Telnet auf einem anderen Rechner arbeite kann ich nicht hochscrollen.
Benutzt Du dieses grauenhafte, bei Windows mitgelieferte Telnet? Sogar dort kannst Du ueber Terminal/Einstellungen/Puffergroesse die Zeilenanzahl erhoehen, dann kannst Du auch scrollen. Aber verwende doch einfach ein richtiges Telnet, z.B. QVT Term (http://www.qpc.com/).
Und wo wir gerade dabei sind: Wenn das Skript ueber einen Webbrowser angesprochen wird: Wie komme ich dann an die Fehlermeldungen?
Es ist leider nicht mein Server und ich habe nur sehr wenig Rechte. Somit kann ich den httpd nicht umkonfigurieren, etc. Es sollte irgendwie in Perl gehen, dass die Fehler in eine (meine!) Logdatei geschrieben werden.
Um Warnungen und Fehlermeldungen umzuleiten, gibt es in Perl die Pseudo-Signalhandler __WARN__ und __DIE__. Funktioniert ungefaher so:
sub logmsg {
local *LOG;
open(LOG, ">>private.logfile") or return; # what could we do if that fails?
print LOG "$0: ", @_;
close(LOG);
}
zum beginn der ausfuehrung des scripts:
$SIG{__WARN__} = sub {
chomp($_[0]);
logmsg("[warning] ", $_[0]);
};
$SIG{__DIE__} = sub {
chomp($_[0]);
logmsg("[error] ", $_[0]);
# stop further exception processing, especially prevent printing the die() message to STDERR
exit(0);
};
HTH && So long