python的logging模块
1|0一. logging是什么,作用是什么
logging—是python自带的一个日志模块
它的作用主要有两个:
1. 代替print,可以把大部分你想要进行调试的信息打印出来或者是输出到指定文件
2. 可以对一些输出的调试信息分类做输出,比如说:
DEBUG, INFO, WARNING, ERROR, CRITICAL
2|0二. logging模块的介绍与使用
python使用logging模块记录日志涉及四个主要类,每个类的用法功能如下:
- logger:提供了应用程序可以直接使用的接口
-
handler:将(logger创建的)日志记录发送到合适目的的输出
-
setLevel:提供了细度设备来决定输出哪种级别的日志记录
-
formatter:决定日志记录的最终输出形式
3|0三. logging内容
logging模块--主要为以下三个方面:
-
日志级别
-
日志内容格式
-
日志输出方式
3|11. 日志级别
critical > error > warning > info > debug
级别越高打印的日志越少,反之亦然,即
-
debug:打印全部的日志
- info:打印info,warning,error,critical级别的日志
-
warning:打印warning,error,critical界别的日志
-
error:打印error,critical级别的日志
-
critical:打印critical级别的日志
3|22. logger的介绍
logger是后续程序可以直接调用的接口,如果不去创建一个logger的话,那么就会默认调用root-logger(logging),因为logger在日志系统里面是有父级与子级的,如果没有创建一个新的logger子级,那么打印日志的时候就会直接调用到父级
常用方法:getLogger
我们来看个简单的例子:
结果是这样的:
3|33. setLevel的介绍
我们一般用setLevel来设置日志的输出级别
1) logging有如下级别:DEBUG、INFO、WARNING、ERROR、CRITICAL--->级别正序越来越高。默认级别是WARNING
2) logging模块只会输出指定level以上的log
3) 用法logger.debug()、logger.info()、logger.warning()、logger.error()、logger.critical():用于日志输出,相当于print的作用
这样的好处,就是在项目开发时debug用到的log,我们想要什么级别的日志,不需要去改代码,只需要在这个级别设置里改变日志的输出级别就可以了
3|44. handler的介绍
StreamHandler:
日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stdeer,即控制台
FileHandler:
继承自StreamHandler,将日志信息输出到磁盘文件上,默认情况下,日志文件可以无限增大
logging模块中的handlers模块专门用来处理日志输出的,位于logging.handlers
常用handlers:
RotatingFileHandler:支持循环日志文件
maxBytes:允许日志文件在达到maxBytes时rollover。当文件大小达到或者超过maxBytes时,就会新创建一个日志文件
backupCount:备份数目,也就是最多能有多少个备份。命名会在日志的base_name后面加上.0-.n的后缀(比如:test.0.log、test.1.log...)
TimedRotatingFileHandler:在RotatingFileHandler的基础上,支持定时生成新的日志文件。when:时间间隔的类型
3|55. Formatter的介绍
logging.Formatter:用来设置在控制台或者在文件中,日志内容的呈现方式:
在创建Formatter对象的时候有如下两个参数:
fmt:日志中具体输出哪些内容,日志生成的时间,所在文件,所在代码行等
datefmt:时间的格式。默认格式为:%Y-%m-%d %H:%M:%S
注:在Formatter类中有说明fmt可以选用的选项
3|66. 实例
文件输出结果:
控制台输出结果:
3|77. 总结
3|88. 补充:配置root logger
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/9073210.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?