''' 日志模块,可用类/实例调用 例:my_logger = MyLogger.create_logger my_logger.info("输出级别为info的日志信息) ''' import logging from logging.handlers import TimedRotatingFileHandler import time class MyLogger(): @staticmethod # 静态方法,使用时可用类/实例调用,只在名义上归类管理 def create_logger(): # 获取日志收集器,并设置名称为my_logger(若不设置名字,则为默认日志收集器root) my_logger= logging.getLogger("my_logger") my_logger.setLevel("DEBUG") # 收集等级默认为warning # 创建一个输出到控制台的处理器 control_hander = logging.StreamHandler() control_hander.setLevel("ERROR") # 设置输出到控制台的处理器的输出等级为ERROR my_logger.addHandler(control_hander) # 添加处理器并绑定在日志收集器上 ,addHandler:增加处理器, removeHandler:删除处理器 # 创建一个处理器,使用时间滚动的文件处理器 filename = '../Log/'+'mylog'+time.strftime("%Y%m%d")+".txt" file_handler = TimedRotatingFileHandler(filename=filename, when='D',interval=1, encoding='utf-8') file_handler.setLevel("DEBUG") # 设置输出到文件的处理器的输出等级为DEBUG my_logger.addHandler(file_handler) # 设置输出到文件与控制台的格式 formatter = logging.Formatter('%(asctime)s [%(filename)s-->line:%(lineno)d],%(levelname)s: %(message)s') file_handler.setFormatter(formatter) control_hander.setFormatter(formatter) return my_logger # a = 100 # # assert a==0 # #my= MyLogger() #可创建实例调用 # my_logger = MyLogger.create_logger() # 可直接采用类调用 # my_logger.debug(a) # my_logger.info("info") # my_logger.warning("warn") # my_logger.error("error") # my_logger.critical("critical")
相关log模块学习链接: https://www.cnblogs.com/miki-peng/p/13416944.html