Python beschäftigt mich gerade wieder intensiv in meiner Arbeit. Hier veröffentliche ich ein Pythonscript, das zum loggen verwendet werden kann.
Es kann als Modul in einem beliebigen Pythonscript importiert werden. Dabei muss das Script im Pythonpath oder im Verzeichnis des Scripts mit dem Import-Befehl liegen.
Das Skript gibt alle Logmeldungen in UTF8-Codierung aus und schreibt jedoch die Logmeldungen in LATIN-1-Codierung ins Logfile. Dies ist in der Umgebung, in der ich arbeite leider nötig, weil alle Meldungen, die mit „print“ auf die Konsole geschrieben werden ein Umlautproblem haben.
Die Verwendung ist einfach:
import log logfile = "C:\\test.log" logs = log.Log(logfile) # logging logs.logIt("Message") # stop logging logs.writeLog()
Hier ist der Code:
#!/usr/bin/python # -*- coding: latin-1 -*- # This module writes a simple logfile # Copyright by Johannes Sommer 2008 class Log: '''Receives messages and writes a logfile e.g.: import log logfile = "C:\\temp\\test.log" logs = log.Log(logfile) # logging logs.logIt("Message") # stop logging logs.writeLog() ''' def __init__(self, logfile): # full path to logfile self.logfile = logfile #print "Logfile is:",self.logfile,"\n" # create an empty loglist self.loglist = [] def logIt(self, Msg): # fetch loglist from instance of class "Log" loglist = self.loglist # UTF-8 to Latin-1 utfString = unicode(Msg, 'latin-1') print utfString # Log Latin-1 loglist.append(Msg+"\n") self.loglist = loglist def writeLog(self): # write logfile to disk logfile = self.logfile loglist = self.loglist f = open(logfile,"w") f.writelines(loglist) f.close() print logfile,"written" # END