Django – 日志
在django中对日志记录提供了很好的支持,日志文件在开发环境中以及在线上环境或者在测试环境中都可以很好的反应程序的执行情况,以及出现bug的时候,准确的定位bug的位置,请求方法,错误原因等。所以说日志对于程序猿来说是一个开发者必备的必须了解且精通的东西。
日志logging模块
logging模块可以收集记录错误,警告等调试信息,在程序中可以捕获这些信息,并且甚至可以将错误的重要信息等都可以通过邮件发送给开发者
logging的组成
Loggers
Handlers
Filters
Formatters
Loggers
Logger 为日志系统的入口。每个logger 是一个具名的容器,可以向它写入需要处理的消息。
每个logger 都有一个日志级别。日志级别表示该logger 将要处理的消息的严重性。
Python 定义以下几种日志级别:
DEBUG:用于调试目的的底层系统信息
INFO:普通的系统信息
WARNING:表示出现一个较小的问题。
ERROR:表示出现一个较大的问题。
CRITICAL:表示出现一个致命的问题。
日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
Handlers
Handler 决定如何处理logger 中的每条消息。它表示一个特定的日志行为。
与logger 一样,handler 也有一个日志级别。如果消息的日志级别小于handler 的级别,handler 将忽略该消息。
Logger 可以有多个handler,而每个handler 可以有不同的日志级别。
Filters
Filter 用于对从logger 传递给handler 的日志记录进行额外的控制。
Formatters
日志记录需要转换成文本。
Formatter 表示文本的格式。Fomatter 通常由包含日志记录属性的Python 格式字符串组成;
你也可以编写自定义的fomatter 来实现自己的格式。
如下展示了formatters格式:
配置logging模块
在settings.py文件中配置
创建日志所在目录
定义LOGGING的格式
定义handler的格式
定义loggers的格式
注意:loggers的level的级别一定要大于handlers的级别,否则handlers会忽略掉该信息的。