mplogger.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:acris 作者: Acrisel 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号