django配置日志

在项目目录创建logs文件夹

# 控制台日志存放目录
CONSOLE_LOG = os.path.join(BASE_DIR, 'logs')

# 配置日志
LOGGING = {
     
    'version': 1,  # 指定版本,目前也就一个版本
    'disable_existing_loggers': True,  # 表示是否禁用所有的已经存在的日志配置
    'formatters': {
     
        # 日志格式
        'standard': {
     
            'format': '[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] '
                      '[%(levelname)s]- %(message)s'},
        'simple': {
       # 简单格式
            'format': '%(levelname)s %(message)s'
        },
    },
    # 暂不使用过滤
    'filters': {
     
    },
    # 定义具体处理日志的方式
    # 用来定义具体处理日志的方式,可以定义多种
    # "default"就是默认方式,"console"就是打印到控制台方式。file是写入到文件的方式,注意使用的class不同
    'handlers': {
     
        # 默认记录所有日志
        'default': {
     
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': CONSOLE_LOG + '/web.logs',  # 日志的存放路径
            'maxBytes': 1024 * 1024 * 5,  # 文件大小
            'backupCount': 5,  # 备份数
            'formatter': 'standard',  # 输出格式
            'encoding': 'utf-8',  # 设置默认编码,否则打印出来汉字乱码
        },
        # 控制台输出
        'console': {
     
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'standard'
        },
    },
    # 配置用哪几种 handlers 来处理日志
    'loggers': {
     
        # 类型 为 django 处理所有类型的日志, 默认调用
        'django': {
     
            'handlers': ['default', 'console'],
            'level': 'INFO',
            'propagate': False  # 可以基于每个记录器控制该传播。 如果您不希望特定记录器传播到其父项,则可以关闭此行为。
        },
    }
}

说明

一、日志级别

django配置日志_第1张图片
总共有六个日志级别,当日志级别设置为WARNING时,则比它低的INFO、DEBUG、NOTSET将不会输出
解释:
CRITICAL 50 关键错误/消息,描述已经发生的严重问题
ERROR 40 错误,描述已经发生的主要问题
WARNING 30 警告消息,描述已经发生的小问题
INFO 20 通知消息,普通的系统信息列表内容
DEBUG 10 调试,出于调试目的的低层次系统信息
NOTSET 0 无级别

format日志格式

%(name)s 记录器的名称
%(levelno)s 数字形式的日志记录级别
%(levelname)s 日志记录级别的文本名称
%(filename)s 执行日志记录调用的源文件的文件名称
%(pathname)s 执行日志记录调用的源文件的路径名称
%(funcName)s 执行日志记录调用的函数名称
%(module)s 执行日志记录调用的模块名称
%(lineno)s 执行日志记录调用的行号
%(created)s 执行日志记录的时间
%(asctime)s 日期和时间
%(msecs)s 毫秒部分
%(thread)d 线程ID
%(threadName)s 线程名称
%(process)d 进程ID
%(message)s 记录的消息

你可能感兴趣的:(django,python)