python 日志打印2
import logging from logging.handlers import TimedRotatingFileHandler class Logger(object): def __init__(self): # 创建logger对象 self.logger=logging.getLogger()#logging.getLogger(name)函数中的name是日志记录的用例名,不指定name会返回root对象 self.logger.setLevel(logging.DEBUG) # logging.root.setLevel(logging.NOTSET) #NOTSET会显示所有输出 self.log_file_name="E:/PyCharmWorkSpace/AutoInterfaceTest/log/testlog.log" self.backup_count=5 self.console_output_level="INFO" self.file_output_level="DEBUG" self.formatter=logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s") def get_logger(self): #handler对象:日志对象用于输出日志,而Handler对象用于指定日志向哪里输出(文件、终端等等) # 常用handler对象: # 1.StreamHandler, 用于向标准输入输出流等输出日志 2.FileHandler,用于向文件输出日志 # 3.NullHandler,什么也不输出 4.RotatingFileHandler,向文件输出日志,如果文件到达指定大小,创建新文件并继续输出日志。 # 控制台日志 console_handler = logging.StreamHandler() console_handler.setFormatter(self.formatter) console_handler.setLevel(self.console_output_level) self.logger.addHandler(console_handler) #将控制台日志对象添加到logger # 文件日志 # 每天重新创建一个日志文件,最多保留backup_count份 file_handler = TimedRotatingFileHandler(filename=self.log_file_name, when='D', interval=1, backupCount=self.backup_count, delay=True, encoding='utf-8') file_handler.setFormatter(self.formatter) file_handler.setLevel(self.file_output_level) self.logger.addHandler(file_handler)#将文件日志对象添加到logger return self.logger if __name__ == '__main__': log=Logger().get_logger() # 打印优先级:critical>error>warning>info>debug # 当等级为debug时,全部等级都能够打印出来,等级为info时,除了debug,其他都能够打印 log.debug("debug信息,最低级别,一般开发人员用来打印一些调试信息") log.info("info信息,正常输出信息,一般用来打印一些正常的操作") log.warning("warning,一般用来打印警信息,默认等级为warning") log.error("error信息,一般用来打印一些错误信息") log.critical("critical信息,一般用来打印一些致命的错误信息,等级最高") logger=Logger().get_logger()