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实现从脚本里运行scrapy的方法
Apr 07 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
linux下python使用sendmail发送邮件
May 22 Python
python实现超市扫码仪计费
May 30 Python
实践Vim配置python开发环境
Jul 02 Python
详解python使用turtle库来画一朵花
Mar 21 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
python中最小二乘法详细讲解
Feb 19 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 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
图形数字验证代码
2006/10/09 PHP
第十节--抽象方法和抽象类
2006/11/16 PHP
php数据库抽象层 PDO
2011/05/07 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
深入PHP变量存储的详解
2013/06/13 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
php常用数学函数汇总
2014/11/21 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
Ionic快速安装教程
2016/06/03 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
flask开启多线程的具体方法
2020/08/02 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
python 深度学习中的4种激活函数
2020/09/18 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
检察官就职演讲稿
2014/01/13 职场文书
安全生产实施方案
2014/02/23 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
车间安全生产管理制度
2015/08/06 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
党员反邪教心得体会
2016/01/15 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
python实现MD5进行文件去重的示例代码
2021/07/09 Python