DJango错误日志生成
程序员文章站
2022-06-27 21:37:43
0922自我总结 DJango错误日志生成 setting.py设置 exception.py(抛错设置) logging.py ......
0922自我总结
django错误日志生成
setting.py设置
logging = { 'version': 1, 'disable_existing_loggers': false, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' }, 'simple': { 'format': '%(levelname)s %(module)s %(lineno)d %(message)s' }, }, 'filters': { 'require_debug_true': { '()': 'django.utils.log.requiredebugtrue', }, }, 'handlers': { 'console': { 'level': 'debug', 'filters': ['require_debug_true'], 'class': 'logging.streamhandler', 'formatter': 'simple' }, 'file': { # 实际开发建议使用warning 'level': 'info', 'class': 'logging.handlers.rotatingfilehandler', # 日志位置,日志文件名,日志保存目录必须手动创建,注:这里的文件路径要注意base_dir 'filename': os.path.join(os.path.dirname(base_dir), "logs/luffy.log"), # 日志文件的最大值,这里我们设置300m 'maxbytes': 300 * 1024 * 1024, # 日志文件的数量,设置最大日志数量为10 'backupcount': 10, # 日志格式:详细格式 'formatter': 'verbose', # 编码 'encoding': 'utf-8' }, }, # 日志对象 'loggers': { 'django': { 'level': 'info', 'handlers': ['console', 'file'], 'propagate': true, # 是否让日志信息继续冒泡给其他的日志处理系统 }, } }
exception.py(抛错设置)
# rest_framework.views 下的 exception_handler 处理了所有 drf可控范围内的异常 from rest_framework.views import exception_handler as drf_exception_handler # drf的异常还是交给 drf_exception_handler,我们只需要处理 drf未处理的异常 from rest_framework.response import response from .response import apiresponse # 自定义异常句柄的原因:要通过 logging 记录异常日志 from .logging import logger def exception_handler(exc, context): response = drf_exception_handler(exc, context) if response is none: # drf处理不了的异常 error_info = '【%s】【%s】' % (context['view'], exc) logger.error(error_info) # return response({ # 'exception': '服务器异常', # }, status=500) return apiresponse(1, '服务器异常', status=500) response.exception = true return response
logging.py
import logging logger = logging.getlogger('django')
上一篇: 装饰者模式,从吃黄焖鸡开始说起
推荐阅读