Frage zu sys.stdin sys.sdout und sys.stderr

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
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Mittwoch 14. Februar 2007, 10:00

Hallöööchen! ;)

Wir benutzen im Moment bei dauCMS Fehlerklassen für Fehlermeldungen. Kein Problem. Wir haben aber auch ein Logging-System, was eventuelle Fehlermeldungen in einen Log schriebt.

Nun schreibe ich an einem System, welches Fehlermeldungen, infos usw. automatisch in die Log-Datei schreibt und nur einfache Meldungen ausgibt. Im 'Debug'-Modus aber auch Fehlermeldungen ausgibt.

Hier wollte ich mich erst einmal informieren, wie so etwas gut zu lösen wäre. Ich weiß ja, das die Ein-Ausgabeströme über sys.stdin und sys.stdout gehen. Fehlermeldungen über sys.stderr.


Kann ich die irgentwie Überladen? -- Und eine Klasse schreiben, die dann die Ausgabefunktionen übernimmt?

Was müssten die Funktionen können? -- Habt ihr da referenzen?

Ich habe zwar eine Lösung... aber die is etwas sehr unflexibel.

Es gibt einfach in einer Klasse drei Funktionen 'write_log', 'write_cl' und 'write_error'
Das gefällt mir net... wäre Geil, wenn ich sämtliche Ausgaben umleiten könnte...


MfG EnTeQuAK
Benutzeravatar
Luzandro
User
Beiträge: 87
Registriert: Freitag 21. April 2006, 17:03

Mittwoch 14. Februar 2007, 10:17

[url=http://www.leckse.net/artikel/meta/profilieren]Profilieren im Netz leicht gemacht[/url]
Benutzeravatar
jens
Moderator
Beiträge: 8481
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 14. Februar 2007, 10:20

Umbiegen kannst du sie stdout Dinger so: [wiki]stdout Redirector[/wiki]

Es gibt auch in Python selber ein Logging Gedönse: http://docs.python.org/lib/module-logging.html
Vielleicht sollte man das nutzten? Dann kann man z.B. auch in's Windows/Linux System-Log schreiben.

In PyLucid hab ich ein eigenes SQL-Logging (Ist ein sehr alter Bestandteil), siehe http://pylucid.net/trac/browser/trunk/P ... logging.py

Im Grunde hab ich eine write und call Methode, die man zum loggen benutzten kann.
Neben der eigentlichen Meldung (ein satz) kann man noch ein Typ und ein Status dazupacken. Der Typ ist z.B. "auth" (beim Login) der Status sollte sowas wie ein Error-Code sein. Also wenn z.B. der Login fehlgeschlagen oder erfolgreich ist.
Bisher gibt es allerdings keine richtige Möglichkeiten gezielt aus den Log-Daten sich Daten raus zu picken. Man kann nur alle Log-Zeilen sich anzeigen lassen.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Mittwoch 14. Februar 2007, 11:43

Das Modul Logging benutzen wir immo ja auch schon ;) Nur halt, das ich gerne die Error-Klassen da mit einbinden wollte und das nicht so ganz einfach war... ;)


@Jens:
Danke, für den Wiki-Link ;) Das hat mir wunderbar weitergeholfen.


MfG EnTeQuAk
Antworten