Wie das Terminal loggen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Xinor
User
Beiträge: 13
Registriert: Montag 31. Mai 2010, 11:51

Hallo,

die Boardsuche habe ich bemüht, leider nichts gefunden. Und über google war ich leider auch nicht erfolgreicher.
Hoffe ihr könnt mir helfen, da ich mich mit Python noch nicht so gut auskenne.
Also ich möchte das Terminal loggen. Besser gesagt, die ganze Ausgabe von dem Python-Programm. Egal ob es irgendeinen print-Ausgabe ist, eine Fehler-Meldung oder ein Warning. Und das ganze in Echtzeit. Habe gelesen, dass das ein Problem sein kann. Und irgendwas von einem Subprocess habe ich auch gelesen. Nur leider weiss ich nicht, ob ich auf dem richtigen Weg bin und wie genau das funktionieren soll. Oder muss man irgendwie das Terminal in eine Datei umleiten und mit dieser Datei arbeiten?
Wäre über Tipps sehr dankbar. Würde mich über Antworten freuen.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wenn man wirklich an den Terminalinhalt will, müsste man den Scrollback Buffer bemühen. Das geht meines Wissens nicht generell, sondern nur über die API des jeweiligen Emulators. Du willst aber offensichtlich nur die Ausgabe eines Programms haben.

Dazu sei kurz erklärt: Ein Programm ist beim Starten normalerweise mit 3 Streams verbunden. Unter unixartigen Systemen ist das STDIN für Eingaben, STDOUT für "normale" Ausgabe und STDERR für Fehlermeldungen. Du musst also einfach den oder die von dir gewünschten Stream(s) woanders hin umleiten. Auch unter Windows geht sowas zuminest in der PowerShell. Die Umleitung gilt in beiden Fällen immer nur für das jeweilige Programm.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Hier mal ein beispiel:

Code: Alles auswählen

import sys
sys.stdout = open("output.txt", "w")
sys.stderr = open("errors.txt", "w")
# bei sys.stdin weiss ich nicht so ganz wie das geht
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Xinor
User
Beiträge: 13
Registriert: Montag 31. Mai 2010, 11:51

Hi ihr Zwei,

vielen herzlichen Dank für eure Antworten.
Wenn das so einfach funktioniert, dann wäre es super.
Werde ich mir anschauen und testen. Danke nochmal.
Antworten