首页 > 编程语言 >python接口自动化实现--基于logging库的日志打印

python接口自动化实现--基于logging库的日志打印

时间:2024-04-07 10:29:05浏览次数:30  
标签:输出 logging python 打印 -- 日志 级别 logger

1、日志的级别        

        debug:调试级别,打印非常详细的日志信息,通常用于代码调试
        info:信息级别,打印一般的日志信息,突出强调程序的运行过程
        warming:警告级别,打印警告信息,表明可能出现潜在的错误
        error:错误级别,打印错误异常信息,该级别的错误可能导致程序无法运行
        critical:严重错误级别,这表明系统可能无法继续运行

2、日志输出格式

         %(levelno)s 打印日志级别的数值
        %(levelname)s 打印日志级别名称
        %(pathname)s 打印当前执行程序的路径,其实就是sys.argv[0]
        %(filename)s 打印当前执行程序名
        %(funcName)s 打印日志的当前函数
        %(lineno)d 打印日志的当前行号
        %(asctime)s 打印日志的记录时间
        %(thread)d 打印线程ID
        %(threadName)s 打印线程的名称
        %(process)d 打印进程的ID
        %(message)s 打印日志的信息

3、logging库的用法(将日志输出到指定文件)

# 第一步,创建一个logger日志器
logger = logging.getLogger()
logger.setLevel(logging.INFO)  # Log等级总开关

# 第二步,创建一个handler,用于写入日志文件
curTime = time.strftime("%Y-%m-%d %H%M", time.localtime())
logfile = logs_path +f"/api_{curTime}.logger"  #定义文件名称及存放路径
fh = logging.FileHandler(logfile, mode='a',encoding='utf-8')
fh.setLevel(logging.INFO)  # 输出到file的log等级的开关

# 第三步,再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)  # 输出到console的log等级的开关

# 第四步,定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 第五步,将logger添加到handler里面
logger.addHandler(fh)
logger.addHandler(ch)

4、如何将日志以不同的颜色区分日志级别并输出到文件中?请教各路大神。。。(注意是输出到日志文件中,不是控制台!!!)

    

标签:输出,logging,python,打印,--,日志,级别,logger
From: https://blog.csdn.net/nidemingzi_cz/article/details/137453992

相关文章

  • 守护软件安全的重要防线-----代码签名
    数字化时代,软件已经成为驱动社会运转的关键要素,无论是企业级应用还是日常使用的手机APP,其背后都离不开代码的支持为软件的真实性、完整性和不可抵赖性提供了强大的安全保障。代码签名证书请点击这里代码签名如同软件世界里的“安全印章”,它不仅是防范恶意攻击、保障用户安全的......
  • 超级好用的 IEC104 主站/客户端模拟器
    目录超级好用的IEC104主站/客户端模拟器主要功能软件截图超级好用的IEC104主站/客户端模拟器官网下载地址:http://www.redisant.cn/iec104client主要功能同时模拟多个主站/客户端。在单个连接中模拟多个站(公共地址)。完整的信息对象解析,通过表格查看信息对象的所有属性。......
  • 记录一下远程链接mysql报host 'xxx.xxx.xxx' is not allowed to connect to this mysq
    问题说明:服务器上的mysql本地是可以链接3306端口的,但是远程链接服务器的3306端口报错,在排除了 服务器端口和服务器防火墙 的问题之后,确定问题应该是mysql的问题解决方式:1.点击mysql命令 2.输入数据库密码 3.输入 usemysql4.输入  updateusersethost=......
  • 洛谷题单指南-数学基础问题-P1469 找筷子
    原题链接:https://www.luogu.com.cn/problem/P1469题意解读:找到落单的整数,其他整数都可以配对。解题思路:利用异或的特性:1、整数和自己异或x^x=02、任何数和0异或x^0=x因此,将所有数异或起来,结果就是落单的整数。100分代码:#include<bits/stdc++.h>usingnamespa......
  • 通过输出解析器输出 json 格式数据
    fromlangchain.output_parsersimportResponseSchema,StructuredOutputParserfromlangchain_community.llms.ollamaimportOllamafromlangchain_core.promptsimportPromptTemplatellm=Ollama(model="qwen:7b")#你希望你的回复结构模板response_schems=[......
  • sql怎么使用三个判断
    在SQL中,你可以使用CASE语句来实现三个条件判断。CASE语句在SQL中可以提供一种灵活的方式来根据条件判断执行不同的操作。以下是一个简单的例子,假设我们有一个名为employees的表,它有一个名为salary的列,我们想要根据员工的薪水范围为他们分类:SELECTname,salary,CASE......
  • WPF开发一个可以自适应排列的Panel控件
    一.控件介绍    初看标题可能无法理解,我们看看什么是自适应排列。乍一看它有点像WrapPanel控件,都是从左至右排列,如果一行排列不下就换行继续排列,但是细看你就会发现不对,WrapPanel控件行尾是不会对齐的,也就是说只要WrapPanel的子控件的宽度不一致,每一行的末尾就会必定留下一......
  • 归一化技术比较研究:Batch Norm, Layer Norm, Group Norm
    归一化层是深度神经网络体系结构中的关键,在训练过程中确保各层的输入分布一致,这对于高效和稳定的学习至关重要。归一化技术的选择(Batch,Layer,GroupNormalization)会显著影响训练动态和最终的模型性能。每种技术的相对优势并不总是明确的,随着网络体系结构、批处理大小和特定任务......
  • 解决VSCode打开终端Terminal闪退的问题
    原文连接:https://blog.csdn.net/birdfly2015/article/details/135013758一、背景在新电脑上使用了VSCode,但是一打开Terminal,Terminal马上就消失了,在网上找了很久,都没有找到对应的分析二、解决思路首先,是从这个文档中找到了灵感,这个文档里面汇集了大部分的问题,如果有其他问题可以......
  • C#的无边框窗体改变大小解决方案 - 开源研究系列文章
          这次继续研究无边框窗体需要的功能。其实就是把有边框的默认窗体的一些功能进行实现而已。不过不同的人不一定相同的代码,所以笔者尽量用最简单有效的方法例子让读者能够直接对代码进行复用,以节省时间和人力。这次解决的是无边框窗体Sizeabled的能改变大小的方案。 ......