AI智能摘要
GPT
这里是萌新AI,这篇文章介绍了 Python 中 logging 模块的使用。作者首先说明日志记录对模型实验的重要性,接着讲解 logging 的两种方法:一是通过 logging.basicConfig() 直接配置,适合简单场景;二是通过 Logger、Handler 等四个组件灵活控制。文章还解释了六个日志级别及其过滤作用,并简要对比了控制台和文件两种输出方式。
URL
type
status
date
slug
summary
tags
category
icon
password
本篇博客主要用于记录如何使用python库中logging模块。伙伴们在训练或者微调模型时,经常需要记录每次实验的详细结果,用于分析改进模型和调整参数。如果通过人力记录往往会造成混乱,不易回顾,那么自动生成日志记录便是我们首选的方法。这便是本篇博客的作用。若有不当地方,请伙伴们及时指正!谢谢大家!
📝 logging理论
logging使用方法
logging有两种使用方法:
- 通过logging模块直接调用,即
logging.basicConfig()直接配置日志config。
- 通过logging的四个个组件实现:Logger、Filter、Handler、Formatter。
logging日志级别
日志可以在控制台和文件中输出,并不是所有的日志都需要在控制台或者文件中输出。那么,我们需要过滤这些日志信息。这便是日志级别的作用之一。
logging包含6个日志级别:NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL。日志等级划分如下:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL。
当我们设置了某个日志级别时,那么低于该日志级别的都不会被logging记录。eg:假如伙伴们设置了INFO,那么NOTSET和DEBUG的日志会被过滤到,不会输出到控制台或则文件输出中。
注意
logging包含两种输出目的地:控制台和文件。针对控制台和文件,logging的两种使用方法有所不同。
logging模块调用
logging模块调用是一种配置简单的方法。该方法适合在一些简单场景快速使用。如果伙伴们没有过滤、区分进程等要求,那么,伙伴们便可使用logging模块快速配置。
logging.basicConfig()参数记录,可点击该链接查看。
logging组件调用
logging组件调用是一种可自定义方法,可以根据需求进行配置改动。首先,我们先了解一个各个组件的作用。
组件名
Logger
Handler
Filter
Formatter
作用
申明日志,暴露函数给应用程序,并将日志传递给相应的处理器。
处理器,这里我们还可以建立输出控制台处理器和文件处理器。
过滤器,决定输出哪些日志记录。
格式化器,决定最终输出中日志记录的布局。
创建流程:
首先,通过logging.getLogger(”日志器名称”)创建日志器;接着,创建处理器,处理器有两种类型,分别是logging.StreamHandler()和logging.FileHandler(文件名);再接着,日志器和处理器分别设置日志级别,通过.setLevel(日志级别)设置;再接着,为处理器设置输出格式,通过.setFormatter(logging.Formatter(格式))设置;再接着,将处理器加入到日志器中,通过 日志器.addHandler(处理器名)加入。最后,将需要的信息输入到日志器调用的日志级别中。
🤗 logging实践
因为博主是做深度学习相关的算法工程师,所以代码包含了深度学习模型训练部分代码。伙伴们需要安装Pytorch。
logging模块调用代码
logging组件调用代码
logging组件调用代码With Config
如果伙伴们想将logging组件的配置信息放入config配置文件中,不想将所有信息放在执行的python文件中。那么,下面的链接是关于如何使用config来配置logging。
📎 参考文章
以上便是logging模块的学习记录,欢迎您在底部评论区留言,一起交流~
- 作者:不爱吃香菜的萌新
- 链接:https://hexo.levsongsw.com//tools/logging1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。








