In der Docu zu Logging hab ich zwar was mit Thread gelesen, aber bei dem englishen tu ich mir schwer und ich brauch was zum anfassen, sprich ein Beispiel.
Hab jetzt einfach mal selbst ne Classe erstellt und das event mit nen thread verknüpft.
Hintergrund ist, ich möchte so wenig wie möglich zeit fürs loggen verschwenden.
Gibts auch irgendwie ne Möglichkeit, das Komma vor den tausendstel Sekunden zu nen Punkt zu bekommen? So wie ich das gelesen hab, geht das nicht einfach mit dem zeitformat argument des loggers.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import time
import logging
from threading import Thread
class LoggerClass:
def __init__(self, logheader, filepath):
directory = os.path.dirname(filepath)
if not os.path.exists(directory):
os.makedirs(directory)
self.logger = logging
self.logger.basicConfig(format='%(asctime)s: ' + logheader + ': %(message)s' , filename=file, level=logging.DEBUG)
def log(self, logmsg):
thread = Thread(target=self.log_thread,args=[logmsg])
thread.setDaemon(True)
thread.start()
def log_thread(self, logmsg):
self.logger.debug('%s' % logmsg)
def note(self):
# for kodi notification
pass
def main():
Logger = LoggerClass('MyHead','./test/logfile.log')
Logger.log('test')
time.sleep(0.020)
Logger.log('test2')
del Logger
if __name__ == '__main__':
main()