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