Python中使用logging和traceback模块记录日志和跟踪异常


Posted in Python onApril 09, 2019

logging模块

logging模块用于输出运行日志,可以设置不同的日志等级,保存信息到日志文件中等。 相比print,logging可以设置日志的等级,控制在发布版本中的输出内容,并且可以指定日志的输出格式。

1. 使用logging在终端输出日志

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import logging # 引入logging模块
# 设置打印日志级别 CRITICAL > ERROR > WARNING > INFO > DEBUG
logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s
 -%(filename)s[line:%(lineno)d] - %(levelname)s - %(message)s')
# 将信息打印到控制台上
logging.debug(u"调试")
logging.info(u"执行打印功能")
logging.warning(u"警告")
logging.error(u"错误")
logging.critical(u"致命错误")

输出

Python中使用logging和traceback模块记录日志和跟踪异常

2. 使用logging在?端?出日志,?K保存日志到本地log文件

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import logging # 引入logging模块
import os.path
# 第一步,创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG) # Log等级开关
# 第二步,创建一个handler,用于写入日志文件
log_path = os.path.dirname(os.getcwd()) + '/Logs/'
log_name = log_path + 'log.log'
logfile = log_name
file_handler = logging.FileHandler(logfile, mode='a+')
file_handler.setLevel(logging.ERROR) # 输出到file的log等级的开关
# 第三步,定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
file_handler.setFormatter(formatter)
# 第四步,将handler添加到logger里面
logger.addHandler(file_handler)
# 如果需要同?r需要在?端上?出,定?一??streamHandler
print_handler = logging.StreamHandler() # 往屏幕上输出
print_handler.setFormatter(formatter) # 设置屏幕上显示的格式
logger.addHandler(print_handler)
# 日志信息
logger.debug('this is a logger debug message')
logger.info('this is a logger info message')
logger.warning('this is a logger warning message')
logger.error('this is a logger error message')
logger.critical('this is a logger critical message')
# 或使用logging
logging.debug('this is a logger debug message')
logging.info('this is a logger info message')
logging.warning('this is a logger warning message')
logging.error('this is a logger error message')
logging.critical('this is a logger critical message')

日志等级划分

  • FATAL:致命错误
  • CRITICAL:特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用
  • ERROR:发生错误时,如IO操作失败或者连接问题
  • WARNING:发生很重要的事件,但是并不是错误时,如用户登录密码错误
  • INFO:处理请求或者状态变化等日常事务
  • DEBUG:调试过程中使用DEBUG等级,如算法中每个循环的中间状态

traceback模块

traceback是python中用来跟踪异常信息的模块,方便把程序中的运行异常打印或者保存下来做异常分析。

常见用法

try:
  doSomething()
except:
  traceback.print_exc()
  # logging.error(str(traceback.format_exc()))

traceback.format_exc() 与 traceback.print_exc() 区别:

  1.    traceback.format_exc() 返回异常信息的字符串,可以用来把信息记录到log里;
  2.    traceback.print_exc() 直接把异常信息在终端打印出来;

traceback.print_exc()也可以实现把异常信息写入文件,使用方法:

traceback.print_exc(file=open('traceback_INFO.txt','w+'))

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python实现竖排打印传单手机号码易撕条
Mar 16 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
Python中pillow知识点学习
Apr 30 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
pip指定python位置安装软件包的方法
Jul 12 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
Python 处理文件的几种方式
Aug 23 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
由Python编写的MySQL管理工具代码实例
Apr 09 #Python
python实现爬山算法的思路详解
Apr 09 #Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 #Python
Python爬取数据保存为Json格式的代码示例
Apr 09 #Python
python实现QQ空间自动点赞功能
Apr 09 #Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 #Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 #Python
You might like
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python正则实现计算器功能
2017/12/14 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
python获取本机所有IP地址的方法
2018/12/26 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Python中print和return的作用及区别解析
2019/05/05 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Python猜数字算法题详解
2020/03/01 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
视光学专业毕业生推荐信
2013/10/28 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
物流管理专业自荐信
2014/06/23 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
端午节寄语2015
2015/03/23 职场文书
Golang的继承模拟实例
2021/06/30 Golang
如何利用python实现Simhash算法
2022/06/28 Python