使用Python将Exception异常错误堆栈信息写入日志文件


Posted in Python onApril 08, 2020

假设需要把发生异常错误的信息写入到log.txt日志文件中去:

import traceback
import logging
 
logging.basicConfig(filename='log.txt', level=logging.DEBUG,
     format='%(asctime)s - %(levelname)s - %(message)s')
 
try:
 raise Exception('发生异常错误信息')
except:
 #方案一,自己定义一个文件,自己把错误堆栈信息写入文件。
 #errorFile = open('log.txt', 'a')
 #errorFile.write(traceback.format_exc())
 #errorFile.close()
 
 #方案二,使用Python标准日志管理维护工具。
 logging.debug(traceback.format_exc())

补充知识:Python---异常处理、调用栈、异常记录、抛出错误

异常处理:

在python中,内置了一套错误处理机制:try:...except:...finally

语法:

try:
可能出现异常语句
except 错误类型1 as e:
异常处理
except 错误类型2 as e:
异常处理2
...
finally:
无论是否出错,都会执行的语句

PS:python的错误也是类,所有错误的类都继承自BaseException。

所以使用except时需注意,不但会捕获该类型的错误,还会将其子类错误一网打尽

调用栈:

若异常没有被捕获,则会一直往上抛,最后抛给解释器,解释器打印错误的堆栈信息,然后退出。

因此,查找错误的时候:

1、先看错误类型

2、从下往上找

如:

使用Python将Exception异常错误堆栈信息写入日志文件

异常记录:

如果只使用异常捕获,结果只会打印错误类型,不会打印错误堆栈信息。如果不使用异常捕获,python解释器会打印错误类型及错误堆栈信息,但是程序也被结束了。使用异常记录就可以把错误类型和错误堆栈信息都打印出来,而且程序可以继续执行。

import logging

def foo(s):
 return 10/int(s)
def bar(s)
 return foo(s)*2

def mian():
 try:
  bar('0')
 except Exception as e:
  logging.exception(e)
main()
print("END")

抛出错误:

因为错误是class,捕获一个错误就是捕获到该class的一个实例,因此,错误并不是凭空产生的,而是有意创建并抛出的,pyhton的内置函数会抛出很多类型的错误,我们自己编写的函数也可以抛出错误。

如果要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例。

class FooError(valueError):
 pass
def foo(s):
 n = int(s)
 if n == 0:
  raise FooError("invalid value :%s"%s)
 return 10/n
foo('0')

PS:只有在必要的时候才定义我们自己的错误类型,如果可以选择python已有的内置的错误类型,尽量使用python内置的错误类型。

常见的错误类型

- AttributeError 试图访问一个对象没有的属性
- IOError 输入/输出异常 无法打开文件
- IndentationError 语法错误,代码没有对齐
- keyError 访问的key字典中不存在
- NameError 使用一个还未赋值的对象的变量
- TypeError 传入对象类型与要求不合法
- ValueError 传入一个调用者不期望的值

以上这篇使用Python将Exception异常错误堆栈信息写入日志文件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3.x版本中新的字符串格式化方法
Apr 24 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
总结python 三种常见的内存泄漏场景
Nov 20 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 #Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 #Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 #Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 #Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
Apr 08 #Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
Apr 08 #Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 #Python
You might like
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
php生成html文件方法总结
2014/12/01 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
python正则表达式面试题解答
2020/04/28 Python
TensorFlow损失函数专题详解
2018/04/26 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
如何通过Python实现标签云算法
2019/07/02 Python
python django model联合主键的例子
2019/08/06 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
如何利用Python 进行边缘检测
2020/10/14 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
中学生爱国演讲稿
2013/12/31 职场文书
百度吧主申请感言
2014/01/12 职场文书
商场中秋节广播稿
2014/01/17 职场文书
共产党员承诺书
2014/03/25 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书