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网络爬虫学习笔记(1)
Apr 09 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
python动态视频下载器的实现方法
Sep 16 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
Python @property原理解析和用法实例
Feb 11 Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python Timer 类使用介绍
Dec 28 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
python爬取新闻门户网站的示例
Apr 25 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集成动态口令认证
2016/07/21 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python实现朴素贝叶斯算法
2018/11/19 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
提升python处理速度原理及方法实例
2019/12/25 Python
python和php学习哪个更有发展
2020/06/17 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
类如何去实现接口
2013/12/19 面试题
晚会主持词开场白
2014/03/17 职场文书
超市中秋节促销方案
2014/03/21 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
行政二审代理词
2015/05/25 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL