日志处理
日志等级的分类:
DEBUG
INFO
WARNING
ERROR
CRITICAL
import logging import os import time from common.tools import get_project_path, sep def get_log(logger_name): """ Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出, 然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作 :param logger_name: :return: """ # 创建一个logger logger = logging.getLogger(logger_name) logger.setLevel(logging.INFO) # 设置日志存放路径,日志文件名 all_log_path = get_project_path() + sep(['logs', 'all_logs'], add_sep_before=True, add_sep_after=True) if not os.path.exists(all_log_path): os.makedirs(all_log_path) # 获取本地时间 time_ = time.time() print(time_) # 获取时间戳 print(time.localtime(time_)) # 获取年月日时分秒等格式的时间数据 # rq要作为文件名,但是命名不能有:,所以未采取'%Y-%m-%d %H:%M:%S'形式 rq = time.strftime('%Y%m%d_%H%M', time.localtime(time_)) print(rq) # 设置日志文件名 all_log_name = all_log_path + rq + '.log' print(all_log_name) # 创建handler:写入所有日志 fh = logging.FileHandler(all_log_name) fh.setLevel(logging.INFO) # 定义日志的输出格式 all_log_formatter = logging.Formatter('%(asctime)s - %(filename)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') # 将定义好的输出形式添加到handler fh.setFormatter(all_log_formatter) # 给logger添加handler logger.addHandler(fh) return logger log = get_log('自动化测试') if __name__ == '__main__': log.debug('I am a debug message') log.info('I am a info message') log.warning('I am a warning message') log.error('I am a error message') log.critical('I am a critical message')