【Django】日志设置

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。


文章目录


【Django】日志设置_第1张图片
【Django】日志设置_第2张图片


LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt': "%Y-%m-%d %H:%M:%S"
        },
        'simple': {
            'format': '[%(levelname)-7s] %(asctime)s - %(message)s'
        },
    },
    "filters": {
        # "special": {
        #     "()": "project.logging.SpecialFilter",
        #     "foo": "bar",
        # },
        "require_debug_true": {
            "()": "django.utils.log.RequireDebugTrue",
        },
    },
    'handlers': {
        # 控制台
        'console': {
            'level': 'DEBUG',
            # "filters": ["require_debug_true"],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'  # 制定输出的格式
        },
        # sql
        'db_backends': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'logs/sql.log',
            'formatter': 'verbose'
        },
        # 处理程序
        'django_app': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'maxBytes': 1024 * 1024 * 10,
            'backupCount': 10,
            'filename': os.path.join(BASE_DIR, 'logs/django_app.log'),
            'formatter': 'verbose'
        },
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/mercury.log'),  # 日志输出文件
            'maxBytes': 1024 * 1024 * 5,  # 文件大小
            'backupCount': 10,  # 备份份数
            'formatter': 'verbose',  # 使用哪种formatters日志格式
        },
    },
    'loggers': {
        # 应用中自定义日志记录器
        'django': {
            'handlers': ["console", 'django_app'],
            'level': 'INFO',  # 默认是INFO
            'propagate': True,  # 单独记录,不需要传递
        },
        # 数据库操作日志
        'django.db.backends': {
            'handlers': ['console', 'db_backends', 'django_app'],
            'level': 'DEBUG',  # 数据库日志需要DEBUG
            'propagate': False,  # 最终传递给django
        },
        'app': {
            'handlers': ['console', 'django_app'],
            'level': 'INFO',  # 日常使用都是INFO以上
            'propagate': True,  # 单独记录,不需要传递
        },
    },
}

你可能感兴趣的:(Django开始入门,django,sqlite,数据库)