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统计一个文本中重复行数的方法
Nov 19 Python
Python数据类型详解(三)元祖:tuple
May 08 Python
Python生成密码库功能示例
May 23 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
神经网络理论基础及Python实现详解
Dec 15 Python
Python实现判断给定列表是否有重复元素的方法
Apr 11 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 Python
python实现简易自习室座位预约系统
Jun 30 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实现权限管理功能示例
2017/09/22 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python 基础知识之字符串处理
2017/01/06 Python
Python批量查询域名是否被注册过
2017/06/21 Python
python 换位密码算法的实例详解
2017/07/19 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
python add_argument()用法解析
2020/01/29 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
法学个人求职信范文
2014/01/27 职场文书
丧事主持词大全
2014/04/02 职场文书
投标保密承诺书
2014/05/19 职场文书
计算机专业自荐信
2014/05/24 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
大学军训决心书
2015/02/05 职场文书
工作时间调整通知
2015/04/24 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书