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中字符编码简介、方法及使用建议
Jan 08 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Python产生Gnuplot绘图数据的方法
Nov 09 Python
Python基础之函数的定义与使用示例
Mar 23 Python
python实现统计文本中单词出现的频率详解
May 20 Python
python实现WebSocket服务端过程解析
Oct 18 Python
python模块hashlib(加密服务)知识点讲解
Nov 25 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
python模块内置属性概念及实例
Feb 18 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
phpmyadmin操作流程
2006/10/09 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php中使用redis队列操作实例代码
2013/02/07 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
酒店办公室文员岗位职责
2013/12/18 职场文书
初中科学教学反思
2014/01/21 职场文书
中学教师培训制度
2014/01/31 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
联村联户简报
2015/07/21 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
golang生成vcf通讯录格式文件详情
2022/03/25 Golang