#!/usr/bin/env python3 """ %(name)s Logger的名字 %(levelname)s 文本形式的日志级别 %(message)s 用户输出的消息 %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒 %(levelno)s 数字形式的日志级别 %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有 %(filename)s 调用日志输出函数的模块的文件名 %(module)s 调用日志输出函数的模块名 %(funcName)s 调用日志输出函数的函数名 %(lineno)d 调用日志输出函数的语句所在的代码行 %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示 %(relativeCreated)d 输出日志信息时来自Logger创建的毫秒数 %(thread)d 线程ID。可能没有 %(threadName)s 线程名。可能没有 %(process)d 进程ID。可能没有 """ import logging class Logger(object): logger = None format_default = "[%(asctime)s] %(filename)s %(funcName)s %(lineno)d [%(levelname)s] %(message)s" @classmethod def set_log(cls, _path, _level=logging.DEBUG, _format=format_default): cls.logger = logging.getLogger(_path) cls.logger.setLevel(logging.DEBUG) formatter = logging.Formatter(_format) # 设置屏幕日志 # stream_handler = logging.StreamHandler() # stream_handler.setFormatter(formatter) # stream_handler.setLevel(_level) # 设置文件日志 file_handler = logging.FileHandler(_path) file_handler.setFormatter(formatter) file_handler.setLevel(_level) # cls.logger.addHandler(stream_handler) cls.logger.addHandler(file_handler) return cls.logger if __name__ == '__main__': log = Logger.set_log('Logger.log') log.debug('一个debug信息') log.info('一个info信息') log.warning('一个warning信息') log.error('一个error信息') log.critical('一个致命critical信息')
来源:https://www.cnblogs.com/munan-zhou/p/12402555.html