1、looging 的四大组建
日志器 Logger 入口
处理器 Handler 执行者 ,决定日志在不同端的输出,日志文件。控制台
格式化 Formatter 日志输入的内容
过滤器 Filter 输入感兴趣的日志
2、日志收集器的封装,与步骤
控制台日志与文件日志的创建过程
第一步:创建日志器
logger=logging.getLogger("logger")
第二步:设置日志的输出级别
logger.setLevel(logging.INFO)
第三步:设置日志格式化的输出
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(levelname)s 文本形式的日志级别
%(message)s 用户输出的消息
'''
formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s","%Y/%m/%d-%H:%M:%S")
第三步:将控制器加入日志对象
# 创建控制台处理器 -- 输出控制台
SH=logging.StreamHandler()
#控制台
logger.addHandler(SH)
SH.setFormatter(formatter)
# 创建文件处理器 输出文件
#文件输出的比控制台多一步,创建文件
FH=logging.FileHandler(f'{time.strftime("%Y-%m-%d %H-%M-%S", time.localtime())}_log.txt')
logger.addHandler(FH)
FH.setFormatter(formatter)
整体代码
import logging
import time
# 创建日志器
logger=logging.getLogger("logger")
# 日志输出及当前级别 ,作用全局
logger.setLevel(logging.INFO)
# 作用控制台,日志级别
# SH.setLevel()
#格式化
# 日志包含哪些内容 时间,文件,日志级别, 做了什么事情
# %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
# %(levelname)s 文本形式的日志级别
# %(message)s 用户输出的消息
formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s","%Y/%m/%d-%H:%M:%S")
# 创建控制台处理器 -- 输出控制台
SH=logging.StreamHandler()
#控制台
logger.addHandler(SH)
SH.setFormatter(formatter)
# 创建文件处理器 输出文件
#文件输出的比控制台多一步,创建文件
FH=logging.FileHandler(f'{time.strftime("%Y-%m-%d %H-%M-%S", time.localtime())}_log.txt')
logger.addHandler(FH)
FH.setFormatter(formatter)
try:
score=int(input("请输入你的成绩:"))
if score>60:
print("你通过了")
else:
print("很遗憾,你没通过")
logger.info("查询成功!!!")
except Exception as error:
logger.error("信息错误:"+str(error))
使用
logger.info("查询结束!!!!!!!!!")
简化
self.logger=logging.getLogger(filename)
# 控制台日志
self.console_handler=logging.StreamHandler()
# self.logger.setLevel(level)
#设置日志的格式
self.console_handler.setFormatter(logging.Formatter("[%(asctime)s]%(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s] %(message)s"))
#把日志添加到日志对象
self.logger.addHandler(self.console_handler)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9z3cYgPO-1721979284167)(https://i-blog.csdnimg.cn/blog_migrate/d2eeecdd826be7636a63def7e719dc5e.png)]