def start(self, ):
''' starts logger for multiprocessing using queue.
logdir: if provided, error and debug logs will be created in it.
logging_level: logging level from which to report
logger_format: formating per logging level
'''
# create console handler and set level to info
#if MpLogger.logger_initialized:
if self.logger_initialized:
return
self.logger_initialized=True
logger = logging.getLogger(name=self.logging_root)
logger.setLevel(self.logging_level)
manager=mp.Manager()
q=manager.Queue()
queue_handler = QueueHandler(q)
logger.addHandler(queue_handler)
self.queue_listener = MpQueueListener(q, name=self.name, logging_level=self.logging_level, logdir=self.logdir, formatter=self.record_formatter, process_key=self.process_key, force_global=self.force_global)
if len(self.handlers) == 0:
if self.console:
handlers=create_stream_handler(logging_level=self.logging_level, level_formats=self.level_formats, datefmt=self.datefmt)
for handler in handlers:
self.queue_listener.addConsoleHandler(handler)
if self.logdir and self.force_global:
self.add_file_handlers(process_key=self.name)
else: # len(self.handlers) > 0:
for handler in self.handlers:
self.queue_listener.addHandler(handler)
self.queue_listener.start()
评论列表
文章目录