当前位置:网站首页>logging日志的封装
logging日志的封装
2022-07-27 05:22:00 【Leoon123】
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)

边栏推荐
- 内部类的相关知识
- regular expression
- Basic concepts of software testing
- Some experience of learning technology and theoretical knowledge
- C language - Custom structure type
- Allow or prohibit connecting to a non domain and a domain network at the same time
- Tangent space and TBN matrix
- Wireshark graphical interface capture
- wireshark IP地址域名解析
- Function call of shell script
猜你喜欢
随机推荐
正确安装wireshark
Shell script if nested for loop script
Interface test process and interview questions
Li Kou's first week's wrong question set
Learning records of programming -- Lesson 2 [first knowledge of C language]
Some descriptions and usage of database index
正则表达式
PXE efficient batch network installation
Related knowledge of multithreading
Automated Deployment Project
Brief introduction to unity window interface
互联网简单协议概括
单元集成(接⼝)测试
Wireshark packet modification -- adding or modifying message fields (2)
wireshark功能介绍
Common SQL optimization methods
Wireshark IP address domain name resolution
关于testng相关标签的使用
shell脚本之函数调用
ROS node name duplicate









