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实现换行符转换的脚本的教程
Apr 16 Python
python比较两个列表是否相等的方法
Jul 28 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
python实现抖音点赞功能
Apr 07 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
使用keras根据层名称来初始化网络
May 21 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
Pytorch 使用CNN图像分类的实现
Jun 16 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和redis实现秒杀活动的流程
2019/07/17 PHP
新浪的图片新闻效果
2007/01/13 Javascript
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
Jquery把获取到的input值转换成json
2017/05/15 jQuery
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
JS中跳出循环的示例代码
2017/09/14 Javascript
vue项目实战总结篇
2018/02/11 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript数组排序功能简单实现
2020/05/14 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
python学生管理系统学习笔记
2019/03/19 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
2014三八妇女节活动总结
2014/03/01 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
《社戏》教学反思
2016/02/22 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电