Python的log日志功能及设置方法


Posted in Python onJuly 11, 2019

引入:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍

一、日志级别(从低到高):

DEBUG :详细的信息,通常只出现在诊断问题上

INFO:确认一切按预期运行

WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。

ERROR:更严重的问题,软件没能执行一些功能

CRITICAL :一个严重的错误,这表明程序本身可能无法继续运行

注:这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪。

二、日志输出:显示到控制台或保存到文件中,可以灵活选用

# 这里为了简便,同时处理:输出控制台和保存到文件中
​
import logging 
​
# 第一步,创建一个logger 
logger = logging.getLogger() 
logger.setLevel(logging.INFO) # Log等级总开关 
​
# 第二步,创建一个handler,用于写入日志文件 
logfile = './log.txt' 
fh = logging.FileHandler(logfile, mode='a') # open的打开模式这里可以进行参考
fh.setLevel(logging.DEBUG) # 输出到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) 
​
# 日志 
logger.debug('这是 logger debug message') 
logger.info('这是 logger info message') 
logger.warning('这是 logger warning message') 
logger.error('这是 logger error message') 
logger.critical('这是 logger critical message')

三、日志格式说明

logging.basicConfig函数中,可以指定日志的输出格式format,这个参数可以输出很多有用的信息,如下:

%(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: 打印日志信息

以上这篇Python的log日志功能及设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 Python
Python实现端口检测的方法
Jul 24 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
python scp 批量同步文件的实现方法
Jan 03 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
python读取指定字节长度的文本方法
Aug 27 Python
python datetime中strptime用法详解
Aug 29 Python
基于python实现从尾到头打印链表
Nov 02 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
python使用装饰器作日志处理的方法
Jul 11 #Python
Python日志无延迟实时写入的示例
Jul 11 #Python
深入了解Python iter() 方法的用法
Jul 11 #Python
用python给自己做一款小说阅读器过程详解
Jul 11 #Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 #Python
ML神器:sklearn的快速使用及入门
Jul 11 #Python
python 随机森林算法及其优化详解
Jul 11 #Python
You might like
提升PHP速度全攻略
2006/10/09 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python实现处理mysql结果输出方式
2020/04/09 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
中国最大的名表商城:万表网
2016/08/29 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
毕业生就业自荐信
2013/12/04 职场文书
吨的认识教学反思
2014/04/27 职场文书
公司委托书怎么写
2014/08/02 职场文书
车贷收入证明范本
2014/09/14 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python