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多线程抓取代理服务器IP地址的示例
Nov 09 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
小米5s微信跳一跳小程序python源码
Jan 08 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
Python中format()格式输出全解
Apr 12 Python
python中p-value的实现方式
Dec 16 Python
python 使用递归回溯完美解决八皇后的问题
Feb 26 Python
Python测试框架:pytest学习笔记
Oct 20 Python
python批量更改目录名/文件名的方法
Apr 18 Python
Django程序的优化技巧
Apr 29 Python
Python中rapidjson参数校验实现
Jul 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读注册表
2006/10/09 PHP
PHP新手上路(十二)
2006/10/09 PHP
开发大型 PHP 项目的方法
2007/01/02 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
Python fileinput模块使用实例
2015/06/03 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
Python函数装饰器实现方法详解
2018/12/22 Python
对python函数签名的方法详解
2019/01/22 Python
Python实现最常见加密方式详解
2019/07/13 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
python实现FTP循环上传文件
2020/03/20 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
.NET常见笔试题集
2012/12/01 面试题
环保倡议书400字
2014/05/15 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
新闻稿件写作范文
2015/07/18 职场文书
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题