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获得两个数组交集、并集、差集的方法
Mar 27 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
python获取list下标及其值的简单方法
Sep 12 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
python实现聚类算法原理
Feb 12 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
详解用Python实现自动化监控远程服务器
May 18 Python
通过python3实现投票功能代码实例
Sep 26 Python
详解Python绘图Turtle库
Oct 12 Python
Python tornado上传文件的功能
Mar 26 Python
python with语句的原理与用法详解
Mar 30 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 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
西德产收音机
2021/03/01 无线电
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
PHP 类与构造函数解析
2017/02/06 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
Vue响应式原理详解
2017/04/18 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
python区块及区块链的开发详解
2019/07/03 Python
如何对python的字典进行排序
2020/06/19 Python
python解释器安装教程的方法步骤
2020/07/02 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
前台文员岗位职责及工作流程
2013/11/19 职场文书
农民入党思想汇报
2014/01/03 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
龙门石窟导游词
2015/02/02 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书