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备份文件的脚本
Aug 11 Python
python基础教程之实现石头剪刀布游戏示例
Feb 11 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
深入理解Python中的super()方法
Nov 20 Python
详解Python with/as使用说明
Dec 13 Python
python实现多层感知器
Jan 18 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
python中的列表和元组区别分析
Dec 30 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
Pyramid添加Middleware的方法实例
2013/11/27 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
python实现猜单词游戏
2020/05/22 Python
python 瀑布线指标编写实例
2020/06/03 Python
python相对企业语言优势在哪
2020/06/12 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
小学英语教学反思案例
2014/02/04 职场文书
药品促销活动方案
2014/02/14 职场文书
会计岗位描述
2014/02/22 职场文书
六一节目主持词
2014/04/01 职场文书
个人授权委托书模板
2014/09/14 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
入党团支部推荐意见
2015/06/02 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis