当前位置:网站首页>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)

边栏推荐
猜你喜欢

IP core summary

shell编程规范与变量

数据库在终端的增删改查

Wireshark packet modification -- IP address modification (I)

Related knowledge of multithreading

5g network identity - detailed explanation of 5g Guti

5g's past and present life -- a brief introduction to the development of mobile communication

ULCL功能--5GC

Brief introduction to unity menu interface

Unityshader depth texture (understanding and problems encountered)
随机推荐
Remote access and control
多线程常见锁的策略
Summary of Internet simple protocol
Learning the operation environment needs to be equipped during software testing
If conditional statement of shell
学习软件测试时需要配备的运行环境需求搭建
Unity hub login no response
The concept of interface testing and the use of postman tools
Comparison of communication mechanisms
Shell programming specifications and variables
Remote sensing image recognition training strategy
正确安装wireshark
数组及下标索引
wireshark IP地址域名解析
网络原理的简单认识
Wireshark packet modification -- IP address modification (I)
Joint query of database
Related knowledge of internal classes
shell脚本之函数调用
Thesis writing (harvest)