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中音频处理库pydub的使用教程
Jun 07 Python
Python设计实现的计算器功能完整实例
Aug 18 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
python scrapy简单模拟登录的代码分析
Jul 21 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
php 文件缓存函数
2011/10/08 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
google地图的路线实现代码
2009/08/20 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
公司领导班子对照材料
2014/08/18 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python