Hey Leute,
Ich habe ein Script geschrieben, was noch nicht ganz zuverlässig funktioniert. Das Problem ist, dass ich den Fehler nicht finden kann, da das Skript immer erst nach ca. 1h abstürtzt und ich es leider nur auf meine Root Server ausführen kann. Doch schon nach kurzer Zeit, wenn ich das Skript auf dem Server ausführe, erhalte ich keinen Output mehr!
Deshalb sehe ich auch die Fehlermeldung nicht!
Als Lösung dachte ich mit einfach "script.py > output" auszugühren, aber dort landet dann leider nur der normale output, ohne die Fehlermeldung.
Wie kann ich alles in eine Datei umleiten?
so long,
Samy
Asugabe von Python Programm in Datei umleiten
was du suchst ist wahrscheinlich:
"script.py 1> standard_output.txt 2> error_output.txt"
oder
"script.py 2>&1 1> output.txt"
dabei wird der Error-Output auf den normalen umgebogen und somit gehts dann auch mit einer Datei.
"script.py 1> standard_output.txt 2> error_output.txt"
oder
"script.py 2>&1 1> output.txt"
dabei wird der Error-Output auf den normalen umgebogen und somit gehts dann auch mit einer Datei.
-
- User
- Beiträge: 44
- Registriert: Donnerstag 26. April 2007, 19:23
Sehr gut, genau das wollte ich
Danke!
Danke!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Geht übrigens auch mit einem einfachen ``&>`` siehe Bash Programming Howto.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 44
- Registriert: Donnerstag 26. April 2007, 19:23
Hmm, also so ganz funktioniert es doch noch nicht.
Ich starte mein Programm wie folgt:
Und obwohl es wenn man es normal startet, direkt etwas ausgibt, bleibt die Datei space einfach leer!
Woran liegt das?
Ich starte mein Programm wie folgt:
Code: Alles auswählen
script.py &> space &
Woran liegt das?
Hatte das Problem letztens auch, dass ich mit Scriptabbrüchen zu tun hatte, die ich nicht immer zurodnen konnte und das Script oft über mehrere Tage lief.
Gelöst hab ich es folgender Maßen:
eine "Log" Datei erstellt, in der mit Zeitstempel alle ungewöhnlichen Sachen rein geschrieben werden:
in meiner Hauptscriptdatei:
In ner anderen Py-Datei, wo viele kleine Behelfsfunktionen drin stehen:
Und dann im Hauptscript eine Exception:
Ist vielleicht ein wenig Umständlich, aber funktioniert
Den ganzen das msgs müsstest/könntest du weglassen in deinem Fall.
EDIT: falls daran irgendwas auszusetzen ist, BITTE kritisiert
Gelöst hab ich es folgender Maßen:
eine "Log" Datei erstellt, in der mit Zeitstempel alle ungewöhnlichen Sachen rein geschrieben werden:
in meiner Hauptscriptdatei:
Code: Alles auswählen
log = open(LOGTXT, "a")
Code: Alles auswählen
def LOG(log, message):
x = time.ctime(time.time())
log.write(x)
log.write(":")
log.write(message)
log.write("\n")
log.flush
Code: Alles auswählen
except:
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
pymsg = "PYTHON ERRORS:\nTraceback Info:\n" + tbinfo + "\nError Info:\n " + str(sys.exc_type)+ ": " + str(sys.exc_value) + "\n"
msgs = "GP ERRORS:\n" + gp.GetMessages(2) + "\n"
helper.log(log, pymsg+ "\n"+msgs+"\n")
...
Den ganzen das msgs müsstest/könntest du weglassen in deinem Fall.
EDIT: falls daran irgendwas auszusetzen ist, BITTE kritisiert
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
meneliel, kennst du schon das logging-Modul? [wiki]Neue Features#Logging[/wiki]
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
Ich würde die Logdatei (die ich natürlich mit dem logging-Modul fülle ) ungepuffert öffnen:meneliel hat geschrieben:Code: Alles auswählen
log = open(LOGTXT, "a")
Code: Alles auswählen
log = open(LOGTXT, "a", 0)