美文网首页
Django日志配置简易版

Django日志配置简易版

作者: 丙吉 | 来源:发表于2022-07-19 14:46 被阅读0次

之前的都是在测试环境中的,没有加日志,现在想把日志给加上。

用个简单的,能跑通即可。

就参考了Django文档中的内容。

https://docs.djangoproject.com/zh-hans/3.0/topics/logging/
# 在setting.py文件中输入如下代码
# logging日志配置
import os
LOG_DIR = os.path.join(BASE_DIR, 'logs')
if not os.path.exists(LOG_DIR):
    os.makedirs(LOG_DIR)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'debug.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

稍复杂些的,记录多项log。

注意,Logger里面的 handlers 都要有上面对应的项,我之前把两个参考合并至一起,报错,一直找不到,原来就是没有那项。

参考:https://blog.csdn.net/zhouzhiwengang/article/details/119606262

import os
# logging日志配置
LOG_DIR = os.path.join(BASE_DIR, 'logs')
if not os.path.exists(LOG_DIR):
    os.makedirs(LOG_DIR)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False, # 表示是否禁用所有的已存在的日志配置
    'formatters': {  # 日志格式
        'default': {
            'format': '%(asctime)s %(name)s  %(pathname)s:%(lineno)d %(module)s:%(funcName)s %(levelname)s- %(message)s',
            'datefmt': '%Y-%m-%d %H:%M:%S'},
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
            },
    },
    'filters': {  # 过滤器
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        }
    },
    'handlers': {  # 处理器
        # 'mail_admins': {  # 发送邮件通知管理员
        #     'level': 'ERROR',
        #     'class': 'django.utils.log.AdminEmailHandler',
        #     'filters': ['require_debug_false'],  # 仅当 DEBUG = False 时才发送邮件
        #     'include_html': True,
        # },
        'debug': {  # 记录到日志文件(需要创建对应的目录,否则会出错)
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(LOG_DIR, 'debug.log'),  # 日志输出文件
            'maxBytes': 1024 * 1024 * 5,  # 文件大小
            'backupCount': 5,  # 备份份数
            'formatter': 'default',  # 使用哪种formatters日志格式
        },
        'console': {  # 输出到控制台
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'default',
        },
        'file': {  # 输出到文件
            'level': 'DEBUG',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': os.path.join(LOG_DIR, 'debug.log'),
            'when': 'D',
            'interval': 1,
            'formatter': 'default',
        },
        'request': {  #
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'request.log'),
            'formatter': 'default',
        },
        'server': {  #
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'server.log'),
            'formatter': 'default',
        },
        'root': {  #
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'root.log'),
            'formatter': 'default',
        },
        'db_backends': {  #
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'db_backends.log'),
            'formatter': 'default',
        },
        'autoreload': {  #
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'autoreload.log'),
            'formatter': 'default',
        },
    },
    'loggers': {  # logging管理器
        'mylogger': {
            'handlers': ['console', 'file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers': ['console', 'file'],
            'level': 'DEBUG',
            'propagate': False
        },
        'django.request': {
            'handlers': ['request'],
            'level': 'ERROR',
            'propagate': False,
        },
        'django.server': {
            'handlers': ['server'],
            'level': 'DEBUG',
            'propagate': False
        },
        'django.db.backends': {
            'handlers': ['db_backends'],
            'level': 'DEBUG',
            'propagate': False
        },
        'django.utils.autoreload': {
            'handlers': ['autoreload'],
            'level': 'INFO',
            'propagate': False
        },
        # 对于不在 ALLOWED_HOSTS 中的请求不发送报错邮件
        'django.security.DisallowedHost': {
            'handlers': ['root'],
            'propagate': False,
        },
    },
    'root':{
        'level':'DEBUG',
        'handlers': ['root'],
    },
}

相关文章

  • Django日志配置简易版

    之前的都是在测试环境中的,没有加日志,现在想把日志给加上。 用个简单的,能跑通即可。 就参考了Django文档中的...

  • django 多进程下,日志写入错乱问题

    问题:使用django自带logging配置记录日志时发现,日志丢失与日志写入错乱 原因:django loggi...

  • Django logging 配置

    Django日志配置包括下面4个部分: Loggers Handlers Filters Formatters 以...

  • Django日志配置

    日志用于记录或收集系统运行过程中的各种日志信息 在项目配置文件中添加日志器配置 日志一般位于项目根目录下的logs...

  • django日志配置

    1. settings.py文件定义logging配置 2.根目录创建logs文件夹

  • django中日志模块使用

    一、需求来源: 在django搭建的环境中,代码运行输出的日志需要相关模块做管理。 二、配置日志系统: Djang...

  • Django 如何输出日志

    在做Django体能测试成绩管理平台时,遇到了存储操作日志的问题 《我为何又开始用Django了(内含安装和配置超...

  • Django配置MarkDown

    Django配置MarkDown 后端配置 安装django-mdeditorpip install django...

  • Django日志的配置

    之前在使用日志的时候,由于对django日志的了解不是很深刻,而且日常开发也是不怎么需要关注写入到文件的日志。我们...

  • django日志及配置

    django日志 四个组件 Loggers:日志记录的处理类/对象,一个Logger可以有多个Handlers H...

网友评论

      本文标题:Django日志配置简易版

      本文链接:https://www.haomeiwen.com/subject/yvzjirtx.html