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实现检测服务器是否可以ping通的2种方法
Jan 01 Python
Python中对象的引用与复制代码示例
Dec 04 Python
tornado 多进程模式解析
Jan 15 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
python调用外部程序的实操步骤
Mar 04 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
python中sys模块是做什么用的
Aug 16 Python
python time.strptime格式化实例详解
Feb 03 Python
一文读懂python Scrapy爬虫框架
Feb 24 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
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
js不是基础的基础
2006/12/24 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
基于javascript实现图片滑动效果
2016/05/07 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
简单介绍Python中的几种数据类型
2016/01/02 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
在pycharm中显示python画的图方法
2019/08/31 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
毕业生的自我评价
2013/12/30 职场文书
森林防火工作方案
2014/02/14 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
视光学专业自荐信
2014/06/24 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers