Python logging设置和logger解析


Posted in Python onAugust 28, 2019

一、logging模块讲解

1.函数:logging.basicConfig()

参数讲解:

(1)level代表高于或者等于这个值时,那么我们才会记录这条日志

(2)filename代表日志会写在这个文件之中,如果没有这个字段则会显示在控制台上

(3)format代表我们的日志显示的格式自定义,如果字段为空,那么默认格式为:level:log_name:content

import logging
LOG_FORMAT = "%(asctime)s======%(levelname)s++++++(message)"
logging.basicConfig(filename="log1.txt",level=logging.WARNING,format=LOG_FORMAT)
logging.log(logging.INFO,"This is a INFO log")
logging.log(logging.ERROR,"This is a ERROR log.")

Python logging设置和logger解析

二、logging模块的处理流程

1.四大组件

(1)日志器(Logger):产生日志的一个接口。

(2)处理器(Handler):把产生的日志发送到相应的目的地。

(3)过滤器(Filter):更精细的控制那些日志输出。

(4)格式器(Formatter):对输出的信息进行格式化。

2.Logger

(1)产生一个日志

(2)操作

Logger.setLevel() #设置日志器将会处理的日志消息的最低严重级别

Logger.addHandler()

Logger.moveHander() #上面两个函数,为该logger对象添加和移除一个handler对象

Logger.addFilter()

Logger.removeFilter() #上面两个函数,为该logger对象添加和移除一个filter对象

Logger.debug: #产生一条debug级别的日志,同理,info,error的日志消息

Logger.exception #创建一个类似于Logger.error的日志消息

Logger.log() #获取一个明确的日志level参数类型创建一个日志记录

(3)如何得到一个logger对象

实例化;logging.getLogger()

3.Handler

(1)把log发送到指定位置

(2)方法

setLevel\setFormat\addFilter\removeFilter

(3)不需要直接使用,Handler是基类

logging.StreamHandler #将日志消息发送到输出到Stream。如std.out,std.err或任何file-like对

logging.FileHandler #将日志消息发送到磁盘文件。默认情况下文件大小会无限增长

logging.handlers.RotatongFileHandler #将日志消息发送到磁盘文件,并支持日志文件按大小切割

logging.handlers.TimeRotatingFileHandler #将日志消息发送到磁盘文件,并支持日志文件按时间切割

logging.handlers.HTTPHandler #将日志消息以GET或POST的方式发送到一个指定email地址

logging.NullHandler  #该Handler实例会忽略error message 通常想被想使用logging的library

三、源码

d23_2_logger_usage.py

地址:https://github.com/ruigege66/Python_learning/blob/master/d23_2_logger_usage.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
使用Python对Excel进行读写操作
Mar 30 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python操作csv文件实例详解
Jul 31 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
python下载微信公众号相关文章
Feb 26 Python
Python数据类型之Dict字典实例详解
May 07 Python
pytorch打印网络结构的实例
Aug 19 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 Python
Python shelve模块实现解析
Aug 28 #Python
解决python明明pip安装成功却找不到包的问题
Aug 28 #Python
Python 函数list&read&seek详解
Aug 28 #Python
Python collections模块使用方法详解
Aug 28 #Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 #Python
关于python导入模块import与常见的模块详解
Aug 28 #Python
Python datetime包函数简单介绍
Aug 28 #Python
You might like
无限级别菜单的实现
2006/10/09 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
iOS10推送通知开发教程
2016/09/19 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
Js基础学习资料
2010/11/23 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
基于python 字符编码的理解
2017/09/02 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python批量启动多线程代码实例
2020/02/18 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
语文教育专业求职信
2014/06/28 职场文书
法务专员岗位职责
2015/02/14 职场文书
戒赌保证书
2015/05/11 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书