在Django中使用的日志系统是基于Python中的loggin模块。 首先简单介绍下logging。
一 Loggin模块简介
loggin模块主要包含以下四个部分:
- Loggers 用户使用的直接接口,将日志传递给Handler
- Handlers 控制日志输出到哪里,console,file… 一个logger可以有多个Handler
- Filters 控制哪些日志可以从logger流向Handler
- Formatters 控制日志的格式
1 Loggers
A logger is configured to have a log level. This log level describes the severity of the messages that the logger will handle. Python defines the following log levels:
DEBUG
: Low level system information for debugging purposesINFO
: General system informationWARNING
: Information describing a minor problem that has occurred.ERROR
: Information describing a major problem that has occurred.CRITICAL
: Information describing a critical problem that has
每个日志信息都可以设定日志级别进行处理,
当logger对象接收到了一条日志消息时会对log level进行比较, 如果log level超出或等自己的log level那么会忽略这条消息,否则交由handler处理
2 Handlers
handler决定了如何处理一条日志消息,它指定特定的日志记录行为比如将日志输出到屏幕或者输出到文件等等
如何logger, handler也同样有log level 如果log level超出或等自己的log level那么同样会忽略这条消息
一个logger可以有多个hanlder,每个hanlder可以有不同的log level 通过这种方式,可以根据消息的重要性提供不同形式的日志输出,比如你可以用一个handler进行ERROR和CRITCAL的页面输出,也可以同时用第二个hanlder把所有的日志级别输出到文件进行分析