"Sinnvolle" logfiles aus mehreren Modulen
Verfasst: Donnerstag 15. Dezember 2005, 23:50
Hi,
als erstes etwas ernsthafteres Projekt mache ich mir einen kleinen IRC-Bot, ohne Frameworks oder so.
Ich möchte recht viele Dinge mitloggen. Dazu habe ich eine zweite .py Datei erstellt, log.py mit Namen. Da drin gibt es einige Klassen, etwa BildschirmLogger, der im Grunde halt einfach alles mit print ausgibt anstatt in eine Datei zu loggen. Dann gibts da noch EinzelDateiLogger, der alles in eine Datei schreibt und bald wohl noch VerzeichnisLogger, der dann, sortiert nach Kritierien, in mehrere Dateien schreibt.
Der Bot besteht jetzt aus einer Klasse. Die heißt ircverbindung und hat als Funktion dann auch einen dieser Logger eingebaut. Sprich
der wurde davor mit import natürlich reingeholt.
Jetzt stehen die Grundfunktionen und der Bot an sich läuft schonmal. Die "Features" möchte ich über module machen, wie schon beim Logging. Etwa als Beispiel habe ich eine kleine Funktion in einer stuff.py (ohne Klassen da drin) erstellt, die mit return etwas zurück gibt, deren Rückgabe dann per message ausgegeben wird. Aber das nur am Rande. Nun würde ich auch gern von den fremden Modulen aus ins log schreiben, etwa wenn bei einer FUnktion dort etwas schief läuft.
Im Bot selbst ist es mit self.logger.log('blabla...') ja kein Problem, aber wie kann ich eben diese Funktion aufrufen, wenn self was ganz andres bedeutet?
Vermutlich war das jetzt furchtbar kompliziert erklärt, Verzeihung, gut möglich ist aber auch, dass mein ganzer Ansatz etwas umständlich ist...
als erstes etwas ernsthafteres Projekt mache ich mir einen kleinen IRC-Bot, ohne Frameworks oder so.
Ich möchte recht viele Dinge mitloggen. Dazu habe ich eine zweite .py Datei erstellt, log.py mit Namen. Da drin gibt es einige Klassen, etwa BildschirmLogger, der im Grunde halt einfach alles mit print ausgibt anstatt in eine Datei zu loggen. Dann gibts da noch EinzelDateiLogger, der alles in eine Datei schreibt und bald wohl noch VerzeichnisLogger, der dann, sortiert nach Kritierien, in mehrere Dateien schreibt.
Der Bot besteht jetzt aus einer Klasse. Die heißt ircverbindung und hat als Funktion dann auch einen dieser Logger eingebaut. Sprich
Code: Alles auswählen
self.logger = EinzelDateiLogger
Jetzt stehen die Grundfunktionen und der Bot an sich läuft schonmal. Die "Features" möchte ich über module machen, wie schon beim Logging. Etwa als Beispiel habe ich eine kleine Funktion in einer stuff.py (ohne Klassen da drin) erstellt, die mit return etwas zurück gibt, deren Rückgabe dann per message ausgegeben wird. Aber das nur am Rande. Nun würde ich auch gern von den fremden Modulen aus ins log schreiben, etwa wenn bei einer FUnktion dort etwas schief läuft.
Im Bot selbst ist es mit self.logger.log('blabla...') ja kein Problem, aber wie kann ich eben diese Funktion aufrufen, wenn self was ganz andres bedeutet?
Vermutlich war das jetzt furchtbar kompliziert erklärt, Verzeihung, gut möglich ist aber auch, dass mein ganzer Ansatz etwas umständlich ist...