Python打印详细报错日志,获取报错信息位置行数方式

 更新时间:2023年09月14日 08:47:06   作者:北木.  
这篇文章主要介绍了Python打印详细报错日志,获取报错信息位置行数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python打印详细报错日志,获取报错信息位置行数

源于: 功能类代码 – Logsetclass.py

网上代码1

# 日志模块
import logging
import traceback
# 引入日志
logging.basicConfig(filename='log_record.txt',
    level=logging.DEBUG, filemode='w', format='[%(asctime)s] [%(levelname)s] >>>  %(message)s',
                    datefmt='%Y-%m-%d %I:%M:%S')
try:
	print(a+1)   # 放主要代码
except Exception as e:
    logging.error("Main program error:")
    logging.error(e)
    logging.error(traceback.format_exc())

结果为:

在这里插入图片描述

网上代码2

  • logging模块可以实现Python程序的错误日志功能。
  • 通过使用baseConfig()函数就可以对logging进行一个日志配置。
  • 包括输出的格式和错误等级,记录的文件目录

使用 Python logging 模块能很好的帮我们完成程序的错误日志功能。

1. 像其它的语言那样,python里的logging信息同样也是分为5个等级,从低到高依次是:DEBUG,INFO,WARNING,ERROR,CRITICAL

2. python中,logging由logger,handler,filter,formater四个部分组成,logger是提供我们记录日志的方法;handler是让我们选择日志的输出地方,如:控制台,文件,邮件发送等,一个logger添加多个handler;filter是给用户提供更加细粒度的控制日志的输出内容;formater用户格式化输出日志的信息。

3. logger的级别划分,python中, root是默认的最高级别的,其它的logger的级别通过"."来划分等级,如:bao,bao.a,bao.b三个logger,bao.a和bao.b都的级别都低于bao,依此类推。

4. python中配置logging有三种方式:

  • 4.1 在程序中完成logger,handler,filter,formater的实例化 被配置好logging,然后再使用logging取得logger进行日志操作。
  • 4.2 使用配置文件的方式配置logging,使用fileConfig(filename,defaults=None,disable_existing_loggers=Ture )函数来读取配置文件。
  • 4.3 使用一个字典方式来写配置信息,然后使用dictConfig(dict,defaults=None,disable_existing_loggers=Ture)函数来瓦按成logging 的配置 。(这个方式没有仔细看,所以没有怎么说,具体可以看文档)

注意: 在使用第二种和三种方式配置logging的时候,第三个参数默认值是True,当它为True的时候,在这之前定义的logging配置就是失效,不能再使用,也就是只有配置文件或者配置字典里有的内容才能使用。如果先让之前的logging配置依然有限就要把这个参数设为False,或者一直就是使用配置文件或者配置字典的方式来对logging进行配置。

使用代码logging的代码来说明:

使用baseConfig()函数对 logging进行 简单的 配置:

import logging
logging.basicConfig(level=logging.INFO,
                    format='%(levelname)s %(asctime)s [%(filename)s:%(lineno)d] %(message)s',
                    datefmt='%Y.%m.%d. %H:%M:%S',
                    # filename='parser_result.log',
                    # filemode='w'
                    )
log = logging.getLogger(__name__)
if __name__ == '__main__':
     # 使用logger输出日志信息
    log.info('this is a log')
    log.debug("debug")
    log.info("info")
    log.warning("warning")
    log.error("error")
    log.critical("critiacl")

在这里插入图片描述

说明:

  • 使用baseConfig()函数,可选参数有filename,filemode,format,datefmt,level,stream
  • 有filename是文件日志输出,filemode是’w’的话,文件会被覆盖之前生成的文件会被覆盖。datafmt参数用于格式化日期的输出

通过初始化logger,handler,formater来配置logging:

import logging
# logging模块由logger,handler,filter,fomatter四个部分组成
# 获取一个logger对象
logger = logging.getLogger("haha")
# 设置日志输出等级
logger.setLevel(logging.DEBUG)
# 创建一个文件的handler
f_handler = logging.FileHandler("xxx.log")
f_handler.setLevel(logging.INFO)
# 创建一个控制台的handler
c_handler = logging.StreamHandler()
c_handler.setLevel(logging.WARNING)
# 设置日志的输出格式
fmt = logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s")
# 给handler绑定一个fomatter类
f_handler.setFormatter(fmt)
c_handler.setFormatter(fmt)
# 绑定一个handler
logger.addHandler(f_handler)
logger.addHandler(c_handler)
# 使用logger输出日志信息
logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critiacl")

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python mysql项目实战及框架搭建过程

    python mysql项目实战及框架搭建过程

    本文给大家分享python mysql项目实战框架搭建过程,通过实例代码给大家讲解python mysql项目实战的相关知识,需要的朋友参考下吧
    2021-06-06
  • Python实现计算长方形面积(带参数函数demo)

    Python实现计算长方形面积(带参数函数demo)

    今天小编就为大家分享一篇Python实现计算长方形面积(带参数函数demo),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python RC4加密操作示例【测试可用】

    python RC4加密操作示例【测试可用】

    这篇文章主要介绍了python RC4加密操作,结合实例形式分析了python实现RC4加密功能的具体操作步骤与相关问题解决方法,需要的朋友可以参考下
    2019-09-09
  • 如何基于python实现年会抽奖工具

    如何基于python实现年会抽奖工具

    这篇文章主要介绍了如何基于python实现年会抽奖工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • pycharm设置python文件模板信息过程图解

    pycharm设置python文件模板信息过程图解

    这篇文章主要介绍了pycharm设置python文件模板信息过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python文件右键找不到IDLE打开项解决办法

    Python文件右键找不到IDLE打开项解决办法

    这篇文章主要介绍了Python文件右键找不到IDLE打开项解决办法,本文使用注册表解决了这个问题,需要的朋友可以参考下
    2015-06-06
  • PyTorch 模型 onnx 文件导出及调用详情

    PyTorch 模型 onnx 文件导出及调用详情

    这篇文章主要介绍了PyTorch模型onnx文件导出及调用详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Python代码块批量添加Tab缩进的方法

    Python代码块批量添加Tab缩进的方法

    今天小编就为大家分享一篇Python代码块批量添加Tab缩进的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 利用Python将彩色图像转为灰度图像的两种方法

    利用Python将彩色图像转为灰度图像的两种方法

    这篇文章主要给大家介绍了关于利用Python将彩色图像转为灰度图像的两种方法,以及python 批量将图片转为灰度图的方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • Python结合Sprak实现计算曲线与X轴上方的面积

    Python结合Sprak实现计算曲线与X轴上方的面积

    这篇文章主要介绍了Python结合Sprak实现计算曲线与X轴上方的面积,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02

最新评论