import logging import sys import time log_records = [] class MyLogHandler(logging.Handler, object): """ 自定义日志handler """ def __init__(self, name, other_attr=None, **kwargs): logging.Handler.__init__(self) def emit(self, record): """ emit函数为自定义handler类时必重写的函数,这里可以根据需要对日志消息做一些处理,比如发送日志到服务器 发出记录(Emit a record) """ try: msg = self.format(record) log_records.append((round(time.time() * 1000), msg)) except Exception: self.handleError(record) logger = logging.getLogger('logger') logger.setLevel(logging.DEBUG) # 创建一个流处理器handler并设置其日志级别为DEBUG stdout_handler = logging.StreamHandler(sys.stdout) stdout_handler.setLevel(logging.DEBUG) # 创建一个格式器formatter并将其添加到处理器handler formatter = logging.Formatter("%(asctime)s - %(message)s") stdout_handler.setFormatter(formatter) logger.addHandler(stdout_handler) # 内存日志handler my_log_handler = MyLogHandler('LoggerHandler') logger.addHandler(my_log_handler)