import logging import logging.handlers import os, time class cnlog(object): def __init__(self): # 获得一个logger对象 self.myLogger = logging.getLogger(‘mylogger‘) self.myLogger.setLevel(logging.DEBUG) def Init_log(self, log_path, log_name, base_path=‘Logs‘): log_path = os.path.join(os.path.dirname(__file__), base_path, log_path) # log_path = os.path.dirname(__file__) + ‘/Logs/‘ log_path_isExist = os.path.isdir(log_path) print(log_path_isExist) if (log_path_isExist == False): os.makedirs(log_path) log_name = os.path.join(log_path, log_name) # 添加TimedRotatingFileHandler # 定义一个1秒换一次log文件的handler # 保留3个旧log文件 fh = logging.handlers.TimedRotatingFileHandler(filename=log_name, when=‘S‘, interval=1, backupCount=3) # 设置日志等级 fh.setLevel(logging.DEBUG) # 定义输出流header,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 设置日志格式 formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") fh.setFormatter(formatter) ch.setFormatter(formatter) # 为日志对象添加header self.myLogger.addHandler(fh) self.myLogger.addHandler(ch) self.myLogger.debug(‘Log config is done...‘) return self.myLogger if __name__ == ‘__main__‘: obj = cnlog() log = obj.Init_log(‘task1‘, ‘task1.log‘) while True: log.debug(‘hello‘) time.sleep(1)
原文:https://www.cnblogs.com/wang-kai-xuan/p/12050785.html