Django框架 之 logging配置

Posted 高~雅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django框架 之 logging配置相关的知识,希望对你有一定的参考价值。

logging配置文件

# Django的日志配置项

BASE_LOG_DIR = os.path.join(BASE_DIR, "log") #配置路径


LOGGING = {
    \'version\': 1,  # 保留字
    \'disable_existing_loggers\': False,  # 禁用已经存在的logger实例
    # 日志文件的格式
    \'formatters\': {
        # 详细的日志格式
        \'standard\': {
            \'format\': \'[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]\'
                      \'[%(levelname)s][%(message)s]\'
        },
        # 简单的日志格式
        \'simple\': {
            \'format\': \'[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s\'
        },
        # 定义一个特殊的日志格式
        \'collect\': {
            \'format\': \'%(message)s\'
        }
    },
    # 过滤器
    \'filters\': {
        \'require_debug_true\': {
            \'()\': \'django.utils.log.RequireDebugTrue\',
        },
    },
    # 处理器
    \'handlers\': {
        # 在终端打印
        \'console\': {
            \'level\': \'DEBUG\',
            \'filters\': [\'require_debug_true\'],  # 只有在Django debug为True时才在屏幕打印日志
            \'class\': \'logging.StreamHandler\',  #
            \'formatter\': \'simple\'
        },
        # 默认的
        \'default\': {
            \'level\': \'INFO\',
            \'class\': \'logging.handlers.RotatingFileHandler\',  # 保存到文件,自动切
            \'filename\': os.path.join(BASE_LOG_DIR, "xxx_info.log"),  # 日志文件
            \'maxBytes\': 1024 * 1024 * 50,  # 日志大小 50M
            \'backupCount\': 3,  # 最多备份几个
            \'formatter\': \'standard\',
            \'encoding\': \'utf-8\',
        },
        # 专门用来记错误日志
        \'error\': {
            \'level\': \'ERROR\',
            \'class\': \'logging.handlers.RotatingFileHandler\',  # 保存到文件,自动切
            \'filename\': os.path.join(BASE_LOG_DIR, "xxx_err.log"),  # 日志文件
            \'maxBytes\': 1024 * 1024 * 50,  # 日志大小 50M
            \'backupCount\': 5,
            \'formatter\': \'standard\',
            \'encoding\': \'utf-8\',
        },
        # 专门定义一个收集特定信息的日志
        \'collect\': {
            \'level\': \'INFO\',
            \'class\': \'logging.handlers.RotatingFileHandler\',  # 保存到文件,自动切
            \'filename\': os.path.join(BASE_LOG_DIR, "xxx_collect.log"),
            \'maxBytes\': 1024 * 1024 * 50,  # 日志大小 50M
            \'backupCount\': 5,
            \'formatter\': \'collect\',
            \'encoding\': "utf-8"
        }
    },
    \'loggers\': {
        # 默认的logger应用如下配置
        \'\': {
            \'handlers\': [\'default\', \'console\', \'error\'],  # 上线之后可以把\'console\'移除
            \'level\': \'DEBUG\',
            \'propagate\': True,  # 向不向更高级别的logger传递
        },
        # 名为 \'collect\'的logger还单独处理
        \'collect\': {
            \'handlers\': [\'console\', \'collect\'],
            \'level\': \'INFO\',
        }
    },
}

  

附:Python logger 流程图

 

以上是关于Django框架 之 logging配置的主要内容,如果未能解决你的问题,请参考以下文章

Django框架----logging配置

Django之logging配置

Django框架之模板继承和静态文件配置

Django框架之模板继承和静态文件配置

Django框架之模板基础,静态文件配置

Django框架之模板层template的一些介绍和使用