Python连载28-logging设置&logger解析
一、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.")
二、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
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换
Python连载28-logging设置&logger解析的更多相关文章
- python中利用logging包进行日志记录时的logging.level设置选择
之前在用python自带的logging包进行日志输出的时候发现有些logging语句没有输出,感到比较奇怪就去查了一下logging文档.然后发现其在设置和引用时的logging level会影响最 ...
- python(八)内置模块logging/os/time/sys/json/pickle
模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少 ...
- Python中的logging模块
http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...
- python模块之logging
在现实生活中,记录日志非常重要.银行转账时会有转账记录:飞机飞行过程中,会有黑盒子(飞行数据记录器)记录飞行过程中的一切.如果有出现什么问题,人们可以通过日志数据来搞清楚到底发生了什么.对于系统开发. ...
- Python自学笔记-logging模块详解
简单将日志打印到屏幕: import logging logging.debug('debug message') logging.info('info message') logging.warni ...
- Python日志模块logging用法
1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 ...
- Python中的logging模块【转】https://www.cnblogs.com/yelin/p/6600325.html
[转]https://www.cnblogs.com/yelin/p/6600325.html 基本用法 下面的代码展示了logging最基本的用法. 1 # -*- coding: utf-8 -* ...
- 日志汇总:logging、logger
目录 1.日志输出到文件 2.日志输出到屏幕 3.设置输出等级 4.设置多个日志输出对象 5.日志的配置 6.记录异常 7.设置日志输出样式 1.日志输出到文件basicConfig()提供了非常便捷 ...
- python 的日志logging模块
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message')logging.info('This is info messag ...
随机推荐
- WPF ControlTemplate,DataTemplate
The Control Template defines the visual appearance of a control. All of the UI elements have some ki ...
- Winform 通过 WebBrowser 与 JS 交互
Winform 通过 WebBrowser 与 JS 交互 魏刘宏 2019.08.17 之前在使用 Cef (可在 Winform 或 WPF 程序中嵌入 Chrome 内核的网页浏览器的组件)时, ...
- 高性能TcpServer(C#) - 2.创建高性能Socket服务器SocketAsyncEventArgs的实现(IOCP)
高性能TcpServer(C#) - 1.网络通信协议 高性能TcpServer(C#) - 2.创建高性能Socket服务器SocketAsyncEventArgs的实现(IOCP) 高性能TcpS ...
- C# - MD5验证
前言 本篇主要记录:VS2019 WinFrm桌面应用程序实现字符串和文件的Md5转换功能.后续系统用户登录密码保护,可采用MD5加密保存到后台数据库. 准备工作 搭建WinFrm前台界面 如下图 核 ...
- shell 多行重定向方法(多重嵌套)
这里讲的是多重嵌套.没用过 EOF的朋友请参考其他基础贴 在自动化运维中,常常需要shell脚本.在自动化创建脚本时,会遇到脚本内容里有用EOF重定向到配置文件的代码. 这样就不能用EOF来创建脚本了 ...
- 《面向对象程序设计(java)》第十周学习总结
201871010115 马北<面向对象程序设计(java)>第十周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...
- django学习-视图练习
写一个真正有用的视图 每个视图必须要做的只有两件事: 返回一个包含被请求页面内容的HttpResponse对象,或抛出一个异常,比如Http404. 至于你还想干些什么,随便你. 你的视图可以从数据库 ...
- VSCode变换python的调试解释器
假如一个电脑上有多个Python的环境,想要设置不同的python解释器用于调试. VSCode 的设置,是通过.json的文本来配置的.打开文本的方式: 打开后的文件如下所示: 可以试试“new s ...
- JAVA并发-Condition
简介 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait().notify()系列方法可以实现等待/通知模式.在Java SE5后,Java提供了Lock接口, ...
- 生鲜超市项目错误及解决办法(crispy_forms、外键指向自己、class嵌套访问父类、meta类及各种字段参数)
为什么要在INSTALLED_APPS中加入crispy_forms? 因为django-crispy-forms 是对django form在html页面呈现方式进行管理的一个第三方插件. 为什么有 ...