日志框架
我们知道Nginx有一个访问日志,但是我们的应用程序通常也需要记录日志,Django中默认使用Python内置的logging模块进行日志记录。
日志的配置
Python中的logging日志系统,主要分为四个组件:
formatter:格式化器,配置日志信息如何格式化handler:处理器,配置日志文件名、编码等logger:日志组件,可以看作是我们代码中引用的logger对象实例的总配置filter:过滤器,决定过滤哪些日志内容
我们首先需要在settings.py中配置日志功能,下面是一个配置例子,这里将生成的日志放在工程目录logs文件夹下。
LOG_PATH = os.path.join(BASE_DIR, 'logs')
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '%(levelname)s %(funcName)s %(module)s %(asctime)s %(message)s'
}
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 5 * 1024 * 1024,
'filename': '%s/log.txt' % LOG_PATH,
'formatter': 'default',
'encoding': 'utf-8'
}
},
'loggers': {
'django': {
'handlers': ['console', 'file'],
'level': 'DEBUG'
}
},
'filters': {
}
}
这里我们配置的logger为django,这个logger会将Django框架所有日志,比如报错的错误栈等都进行输出。
配置虽然比较长,但是都很容易看懂,这里就不过多解释了。
输出日志
这里我们手动输出一条日志信息。下面是代码中调用日志组件例子。
from django.shortcuts import render
import logging
logger = logging.getLogger('django')
def login_page(request):
logger.info('访问登录页面')
return render(request, 'login.html')
访问该方法后,可以看到logs文件夹下生成了对应的日志文件,内容例子如下。
INFO login_page login_view 2019-11-28 10:11:04,864 访问登录页面
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。