接口自动化之实现日志记录封装
一:参考官方文档:
二:日志的级别:
日志记录级别的数值在下表中给出。如果你想要定义自己的级别,并且需要它们具有相对于预定义级别的特定值,那么这你可能对以下内容感兴趣。如果你定义具有相同数值的级别,它将覆盖预定义的值;预定义的名称将失效。
在工作中常用的日志级别:
三:基本使用
import logging logging.debug("this is debug。。。") logging.info('this is info ....') logging.warning('this is warning....')
四:配置日志级别
import logging # 设置日志级别为 DEBUG logging.basicConfig(level=logging.DEBUG) logging.debug("this is debug。。。") logging.info('this is info ....') logging.warning('this is warning....')

默认日志打印在控制台,也可以将日志的保存到文件当中。
import logging # 设置日志级别为 DEBUG ,文件名为my.log 文件模式为追加模式 logging.basicConfig(level=logging.DEBUG,filename='my.log',filemode='a',encoding='utf8') logging.debug("this is debug。。。") logging.info('this is info ....') logging.warning('this is warning....')
如果配置到文件中,那么命令行就不再输出打印信息。
五:配置同时控制台和文件中打印
在项目中 应该是将日志同时输出到控制台以及在文件中打印。
配置日志格式
属性名称 |
格式 |
描述 |
---|---|---|
args |
此属性不需要用户进行格式化。 |
合并到 |
asctime |
|
表示 |
created |
|
|
exc_info |
此属性不需要用户进行格式化。 |
异常元组(例如 |
文件名 |
|
|
funcName |
|
函数名包括调用日志记录. |
levelname |
|
消息文本记录级别( |
levelno |
|
消息数字的记录级别 ( |
lineno |
|
发出日志记录调用所在的源行号(如果可用)。 |
message |
|
记入日志的消息,即 |
module -- 模块 |
|
模块 ( |
msecs |
|
|
msg |
此属性不需要用户进行格式化。 |
在原始日志记录调用中传入的格式字符串。 与 |
名称 |
|
用于记录调用的日志记录器名称。 |
pathname |
|
发出日志记录调用的源文件的完整路径名(如果可用)。 |
process |
|
进程ID(如果可用) |
processName |
|
进程名(如果可用) |
relativeCreated |
|
以毫秒数表示的 LogRecord 被创建的时间,即相对于 logging 模块被加载时间的差值。 |
stack_info |
此属性不需要用户进行格式化。 |
当前线程中从堆栈底部起向上直到包括日志记录调用并引发创建当前记录堆栈帧创建的堆栈帧信息(如果可用)。 |
thread |
|
线程ID(如果可用) |
threadName |
|
线程名(如果可用) |
通过使用文件处理器和控制台处理器进行操作。
import logging # 设置名字 logger = logging.getLogger("某项目的日志") # 设置级别 logger.setLevel(logging.DEBUG) # 配置格式化样式 文本内容格式 formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s') # 添加控制台处理器 ls = logging.StreamHandler() ls.setLevel(logging.DEBUG) # 设置格式 ls.setFormatter(formater) # 控制台处理器添加到logger中 logger.addHandler(ls) # 添加文件处理器 import os import time logsdir = os.path.join( os.path.dirname( os.path.dirname(__file__)),'logs') # 日志目录定义 if not os.path.exists(logsdir): os.mkdir(logsdir) # 日志文件 以当时运行的日志格式 logfile = os.path.join(logsdir,time.strftime('%Y_%m_%d')+'.log') lf = logging.FileHandler(filename=logfile,encoding='utf8') lf.setLevel(logging.DEBUG) lf.setFormatter(formater) # 文件处理器添加到日志当中 logger.addHandler(lf) logger.debug('this is debug')
某项目的日志
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异