赞
踩
debug: 调试信息
info: 描述重要事件
warning:警告信息
error: 报错异常信息
critical: 严重错误
1)logger 日志器,提供了应用程序的接口
2)Handler 处理器,通过logger在不同位置输出日志
3)Formator 格式器,决定日志以什么样的格式显示
4)Filter 过滤器,过滤哪些需要记录输出,哪些需要丢弃
注:一个日志器,可以对应多个处理器;每个处理器可以有单独的格式器。
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
注:level: 设置日志级别,默认为logging.WARNING—需要用大写
具体的代码块如下
# coding:utf-8 import os import logging from logging import handlers import sys dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) LOG_ROOT = dirname def get_logger(log_filename, level=logging.INFO, when='D', back_count=0): """ :brief 日志记录 :param log_filename: 日志名称 :param level: 日志等级 :param when: 间隔时间: S:秒 M:分 H:小时 D:天 W:每星期(interval==0时代表星期一) midnight: 每天凌晨 :param back_count: 备份文件的个数,若超过该值,就会自动删除 :return: logger """ # 创建一个日志器。提供了应用程序接口 logger = logging.getLogger(log_filename) # 设置日志输出的最低等级,低于当前等级则会被忽略 logger.setLevel(level) # 创建日志输出路径 log_path = os.path.join(LOG_ROOT, "logs") if not os.path.exists(log_path): os.mkdir(log_path) log_file_path = os.path.join(log_path, log_filename) # 创建格式器 formatter = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s') # 创建处理器:ch为控制台处理器,fh为文件处理器 ch = logging.StreamHandler() ch.setLevel(level) # 输出到文件 fh = logging.handlers.TimedRotatingFileHandler( filename=log_file_path, when=when, backupCount=back_count, encoding='utf-8') fh.setLevel(level) # 设置日志输出格式 fh.setFormatter(formatter) ch.setFormatter(formatter) # 将处理器,添加至日志器中 logger.addHandler(fh) logger.addHandler(ch) return logger
用的时候只需要调用代码
logger = get_logger('store_data.log')
logger.info(f"----------------数据写入成功,正常退出------------------------")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。