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 08 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
Python验证码识别处理实例
Dec 28 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
基于python的列表list和集合set操作
Nov 24 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
Python为何不支持switch语句原理详解
Oct 21 Python
Python中生成ndarray实例讲解
Feb 22 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 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自动跳转中英文页面
2008/07/29 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
jquery对表单操作2
2011/04/06 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
layui 弹出删除确认界面的实例
2019/09/06 Javascript
Python异常处理总结
2014/08/15 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python Logging 日志记录入门学习
2018/06/02 Python
python config文件的读写操作示例
2019/09/27 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
django-csrf使用和禁用方式
2020/03/13 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
英语自荐信常用语句
2013/12/13 职场文书
中学教师教育感言
2014/02/21 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers