Django--logging详解
logging 的组成
python 的logging配置由四个部分组成:
loggers
Handlers
Filters
Formatters
loggers
logger 为日志系统的入口。每个logger是一个具名的容器,可以向他写入需要处理的消息。
每个logger都有一个_日志级别_。日志级别表示该loggers将要处理的消息的严重性。Python 定义一下几种日志级别:
DEBUG: 用于吊事目的的底层系统信息
INFO:普通的系统信息
WARNING:表示出现一个较小的问题
ERROR:表示出现一个较大的问题
CRITICAL:表示出现一个致命的问题
写入logger的每条信息都是一个——日志记录——。每个日志纪录也具有一个——日志级别——,它表示对于的消息的严重性。
每个日志纪录还可以包含描述正在打印的时间的有用元信息。这些元信息可以包含很多细节,例如回溯栈或错误码。
当一条消息给到logger时,此时消息的日志级别会跟logger的日志级别相比较,如果消息的日志级别大于logger时,该消息会进行往下继续处理,如果小于,则忽略。
logger一旦决定要处理该信息,那么会把这消息传递给一个_Handler_.
Handlers
Handler决定如何处理logger中的每条消息,它表示一个特定的日志行为,例如将消息写到屏幕上还是写入文件中或者写入网络socket
与logger一样,handler也有一个日志级别,当logger的日志级别小于handler的级别,将被忽略,
logger可以有多哥handler,而handle也会有不同的日志级别,利用 这种方式,可以根据消息的重要性提高不同形式的处理。例如你可以用一个Handler将error和caritical消息发送给一个页面服务器,而用另外一个handler将所有的消息error和caritical记录到一个文件中用于以后进行分析
Filters
Filter用于对从logger传递给handler的日志纪录进行额外的控制。
默认情况下,满足日志级别的任何消息都将被处理。通过安装一个filter,你可以对日志处理添加额外的条件。例如,你可以安装一个filter,只允许处理来自特定元的error的消息。
Filter还可以处理日志记录的优先级,例如,如果日志记录满足特定的条件,你可以便西额一个filter将日志记录从error降为warning。
filters可以安装在logger上或者是handler上,多个filter可以串联起来实现多层filter行为
Formatters
最后,日志记录需要转成文本,formatter表示文本的格式,fomatter通常由包含——日志记录属性——的Python格式字符串组成,你也可以编写自定义的formatter来实现自己的格式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本