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 time模块用法实例详解
Sep 11 Python
Python 基础之字符串string详解及实例
Apr 01 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
python计算两个数的百分比方法
Jun 29 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
对python 自定义协议的方法详解
Feb 13 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
对Python 字典元素进行删除的方法
Jul 31 Python
python绘制雷达图实例讲解
Jan 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
PHP 和 HTML
2006/10/09 PHP
php 字符串函数收集
2010/03/29 PHP
javascript jq 弹出层实例
2013/08/25 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
Python六大开源框架对比
2015/10/19 Python
python3中str(字符串)的使用教程
2017/03/23 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
Python Collatz序列实现过程解析
2019/10/12 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
艺术应用与设计个人的自我评价
2013/11/23 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
领导干部考察材料
2014/02/08 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
公务员检讨书
2014/11/01 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server