Loading

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来实现自己的格式。

posted @ 2021-01-25 18:22  知无不言~  阅读(504)  评论(0编辑  收藏  举报