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的Flask框架中使用日期和时间的教程
Apr 21 Python
Python导出数据到Excel可读取的CSV文件的方法
May 12 Python
Python实现的简单算术游戏实例
May 26 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
python数据结构之链表详解
Sep 12 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
numpy中矩阵合并的实例
Jun 15 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
pandas-resample按时间聚合实例
Dec 27 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
Python自然语言处理之切分算法详解
Apr 25 Python
Python实现文字pdf转换图片pdf效果
Apr 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
实用函数7
2007/11/08 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Python数组并集交集补集代码实例
2020/02/18 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
文秘个人求职信范文
2014/04/22 职场文书
借款担保书范文
2014/05/13 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
行政前台岗位职责
2015/04/16 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL