# -*- coding: utf-8 -*-
|
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)
|