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