Open qingfengmingjian opened 5 years ago
日志模块 为什么要写日志
一个卡务系统 : 记录时间 地点 金额 谁在什么时候 删掉了某一个用户 #某时某刻登录了系统 #检测代码是不是像我们想像的这样执行的 写文件 ,输出到屏幕 时间格式,级别控制,更加便捷 logging模块不能自动生成你需要的日志 logging模块的使用 简单配置法 编码问题 logger对象法
import logging # logging.basicConfig(level=logging.DEBUG, # format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', # datefmt='%a, %d %b %Y %H:%M:%S') # # logging.debug('debug message') # 调试 # logging.info('info message') # 普通信息 # logging.warning('warning message') # 警告 # logging.error('error message') # 错误信息 # logging.critical('critical message')# 严重错误 # 默认情况下 不打印warning以下级别的信息 # 1.中文显示乱码 # 2.不能同时输出到文件和屏幕
logger对象的方式来使用logging模块 首先 先创建logger对象 第二 创建一个文件操作符 第三 创建一个屏幕操作符 第四 创建一个输出格式 第五 logger 绑定 文件操作符 第六 logger 绑定 屏幕操作符 第七 文件操作符 绑定格式 第八 屏幕操作符 绑定格式
import logging # 用logger # 首先 先创建logger对象 logger = logging.getLogger() logger.setLevel(logging.DEBUG)#信息记录的一个层级 # 第二 创建一个文件操作符 filename = 'D://log.txt' fh = logging.FileHandler('log',encoding='utf-8') # 第三 创建一个屏幕操作符 sh = logging.StreamHandler() # 第四 创建一个格式 fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')#运行的时间,哪个程序,信息级别,信息内容 # logger 绑定 文件操作符 logger.addHandler(fh) # logger 绑定 屏幕操作符 logger.addHandler(sh) # 文件操作符 绑定格式 fh.setFormatter(fmt) # 屏幕操作符 绑定格式 sh.setFormatter(fmt) logger.debug('logger debug message') logger.info('logger info message') logger.warning('logger warning message') logger.error('logger error message') logger.critical('logger critical message')
日志模块 为什么要写日志
使用basicConfig()方法
拆解操作步骤
代码