import logging
from logging.handlers import TimedRotatingFileHandler
from Common.file_path import log_path
class MyLog:
def logger(self):#将日志收集器的名字做为参数传入
collector = __name__
collect_level = 'DEBUG'#收集级别,输出级别,格式,输出渠道从配置文件读取
output_level = 'DEBUG'
fmt = '%(asctime)s-%(levelname)s-%(filename)s-%(name)s-日志信息:%(message)s-codeLine:%(lineno)d'
output = '/logWeb.log'
my_log = logging.getLogger(collector)#定义一个日志收集器
my_log.setLevel(collect_level)#设置收集日志的级别
#设置日志的输出渠道,输出到控制台或者指定文件
if output == 'console':
ch = logging.StreamHandler()
else:
# 定义一个一天换一次日志文件的渠道(每天生成一个新的日志文件),最多保留两个旧的日志文件,也就是说保留两天的日志文件
ch = TimedRotatingFileHandler(log_path+output, when='D', interval=1, backupCount=2,encoding='utf-8')
ch.setLevel(output_level)#设置输出日志的级别
my_log.addHandler(ch)#给日志添加输出渠道
formatter = logging.Formatter(fmt)#设置日志输出的格式
ch.setFormatter(formatter)
return my_log