Protokollierung mit Multiprocessing
Ich habe folgendeslogger
Klasse (als logger.py):
import logging, logging.handlers
import config
log = logging.getLogger('myLog')
def start():
"Function sets up the logging environment."
log.setLevel(logging.DEBUG)
formatter = logging.Formatter(fmt='%(asctime)s [%(levelname)s] %(message)s', datefmt='%d-%m-%y %H:%M:%S')
if config.logfile_enable:
filehandler = logging.handlers.RotatingFileHandler(config.logfile_name, maxBytes=config.logfile_maxsize,backupCount=config.logfile_backupCount)
filehandler.setLevel(logging.DEBUG)
filehandler.setFormatter(formatter)
log.addHandler(filehandler)
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
console.setFormatter(logging.Formatter('[%(levelname)s] %(message)s')) # nicer format for console
log.addHandler(console)
# Levels are: debug, info, warning, error, critical.
log.debug("Started logging to %s [maxBytes: %d, backupCount: %d]" % (config.logfile_name, config.logfile_maxsize, config.logfile_backupCount))
def stop():
"Function closes and cleans up the logging environment."
logging.shutdown()
Zum loggen starte ichlogger.start()
einmal und dann importierenfrom logger import log
bei jeder Projektdatei. Dann benutze ich einfachlog.debug()
undlog.error()
wenn gebraucht. Es funktioniert überall im Skript (verschiedene Klassen, Funktionen und Dateien), aber nicht bei verschiedenen Prozessen, die in der Multiprocessing-Klasse ausgeführt werden.
Ich erhalte folgenden Fehler:No handlers could be found for logger "myLog"
.
Was kann ich machen?