加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

DJango错误日志生成

发布时间:2020-12-15 17:10:35 所属栏目:大数据 来源:网络整理
导读: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 %(modu

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')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读