Django使用Python的内置logging模块来执行系统日志记录。
主要由四部分组成:
loggers 设置的有五种日志级别,日志级别描述了将要处理的消息的严重性,级别如下:
每一条写入的消息都是一条日志,每一条日志都包括有一个日志级别。
现在先假设我们已经配置了 loggers Handlers Filters 以及Formatters
下面在代码中开始调用日志模块进行日志的记录:
import logging
logger = logging.getLogger(__name__)
def index(request):
logger.info('接收到一条请求信息:%s'%request.body)
...
就这样,当每次收到请求时,都会将请求数据记录下来。
下面来看看日志系统其他部分的配置(在setting文件中配置):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/path/to/django/debug.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
上面的配置是将django的所有记录写入到本地文件中,日志文件的位置需要是django程序用户可写的。
在看看另外一条配置,默认情况下django只会将日志级别不低于 INFO 的消息输出到控制台,这与 django 默认的 debug=true 日志记录不同的是,可以通过设置环境变量 DJANGO_LOG_LEVEL=DEBUG 来查看所有Django的调试日志记录
import os
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
},
},
}
基础的配置大概就是这样得了