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批量给云主机配置安全组的方法教程
Jun 21 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Python实现的弹球小游戏示例
Aug 01 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
解决DataFrame排序sort的问题
Jun 07 Python
python中的变量如何开辟内存
Jun 26 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
django实现更改数据库某个字段以及字段段内数据
Mar 31 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
python实现登录与注册系统
Nov 30 Python
用python自动生成日历
Apr 24 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
php,不用COM,生成excel文件
2006/10/09 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
javascript简易画板开发
2020/04/12 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
security.js实现的RSA加密功能示例
2018/06/06 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
python回调函数的使用方法
2014/01/23 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Python操作Excel的学习笔记
2021/02/18 Python
如何理解委托
2012/01/06 面试题
非常详细的C#面试题集
2016/07/13 面试题
生日礼品店创业计划书范文
2014/03/21 职场文书
六年级学生评语
2014/04/22 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
北京故宫的导游词
2015/01/31 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
使用Python解决图表与画布的间距问题
2022/04/11 Python