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中集合类型(set)学习小结
Jan 28 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Python元组拆包和具名元组解析实例详解
Mar 26 Python
详解python3中zipfile模块用法
Jun 18 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
python实现汽车管理系统
Nov 30 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
python多进程间通信代码实例
Sep 30 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
Python 数据的累加与统计的示例代码
Aug 03 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中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
php+mysql数据库查询实例
2015/01/21 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
用js解决数字不能换行问题
2010/08/10 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
js实现随机点名
2021/01/19 Javascript
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
关于Django Models CharField 参数说明
2020/03/31 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
社区七一党员活动方案
2014/01/25 职场文书
班主任新年寄语
2014/04/04 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
低碳环保演讲稿
2014/08/28 职场文书
小学班级管理心得体会
2016/01/07 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书