日志记录:logs
import logging from logging import handlers from api.tools.handle_path import log_dir_name class MyLogger: """ 1、日志记录用户行为 2、理论上要能够根据日志输出,定位到bug 3、不要输出敏感信息在日志里面:账号、密码、身份证、银行卡等 4、使用场景:需要print的地方都可以用log进行替换 5、通过日志能够知道整个执行过程中哪里报错了,就可以了(异常处理),需要将系统的报错信息收集到日志中,方便日后排查问题,找出原因 """ @classmethod def create_log(cls): """创建日志收集器""" # 1、创建一个log日志收集器 my_log = logging.getLogger("my_log") # 2、创建一个输出渠道,输出到控制台的日志 stream_handler = logging.StreamHandler() # 控制台 # 创建一个handler,用于写入日志文件(本地存储) when="D", interval=1 设置日志频率为1天 file_handler = handlers.TimedRotatingFileHandler(filename=log_dir_name, when="D", interval=1, encoding='utf-8') # 3、设置日志的格式 formatter = logging.Formatter( '%(asctime)s-[%(filename)s—->line:%(lineno)d] - %(name)s:%(levelname)s:%(message)s') # 4、渠道绑定日志格式,设置输出到控制台的格式 stream_handler.setFormatter(fmt=formatter) file_handler.setFormatter(formatter) # 日志收集器设置日志级别 my_log.setLevel(level=logging.DEBUG) stream_handler.setLevel("INFO") # 渠道的日志级别 file_handler.setLevel('DEBUG') # 日志收集器绑定渠道 my_log.addHandler(file_handler) my_log.addHandler(stream_handler) return my_log # 创建日志对象,用于外部调用 my_log = MyLogger.create_log() if __name__ == '__main__': my_log.info("This is an info message")