Ведение журнала с использованием многопроцессорной обработки
У меня есть следующееlogger
класс (как 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()
Для входа я запускаюlogger.start()
один раз, а затем импортироватьfrom logger import log
в любом файле проекта. Тогда я просто используюlog.debug()
а такжеlog.error()
при необходимости.
Он отлично работает в любом месте сценария (разные классы, функции и файлы), но он не будет работать на разных процессах, запускаемых через класс многопроцессорности.
Я получаю следующую ошибку:No handlers could be found for logger "myLog"
.
Что я могу сделать?