美文网首页
Django日志配置

Django日志配置

作者: JunChow520 | 来源:发表于2020-09-22 18:26 被阅读0次

    日志用于记录或收集系统运行过程中的各种日志信息

    日志

    在项目配置文件中添加日志器配置

    $ vim settings.py
    

    日志一般位于项目根目录下的logs文件夹下,可通过手工创建,也可以在项目配置文件中使用项目自动创建。

    • 在项目根目录下创建名为logs的文件夹用于存放日志文件
    $ mkdir logs
    
    • 读取项目配置文件时自动创建日志存放目录
    $ vim settings.py
    
    import os
    import sys
    import time
    
    current_path = os.path.dirname(os.path.realpath(__file__)) # 当前目录的绝对路径
    log_path = os.path.join(os.path.dirname(current_path), 'logs') # 订单日志存放目录
    if not os.path.exists(log_path): os.mkdir(log_path) # 若目录不存在则创建
    

    配置项目日志选项

    $ vim settings.py
    
    LOGGING = {
        'version':1,# 版本
        'disable_existing_loggers':False, # 是否禁用已存在的日志器
        # 日志格式
        'formatters': {
            'standard':{
                'format':'[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] '
                         '[%(levelname)s]- %(message)s'
            },
            'simple':{
                'format':'%(levelname)s %(module)s %(lineno)d %(message)s'
            },
            'verbose':{
                'format':'%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
            }
        },
        # 过滤器
        'filters': {
            'require_debug_true':{
                '()':'django.utils.log.RequireDebugTrue'
            }
        },
        # 处理器
        'handlers': {
            # 默认记录所有日志
            'default': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(log_path, 'all-{}.log'.format(time.strftime('%Y-%m-%d'))),
                'maxBytes': 1024 * 1024 * 5,  # 文件大小
                'backupCount': 5,  # 备份数
                'formatter': 'standard',  # 输出格式
                'encoding': 'utf-8',  # 设置默认编码,否则打印出来汉字乱码
            },
            # 输出错误日志
            'error': {
                'level': 'ERROR',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(log_path, 'error-{}.log'.format(time.strftime('%Y-%m-%d'))),
                'maxBytes': 1024 * 1024 * 5,  # 文件大小
                'backupCount': 5,  # 备份数
                'formatter': 'standard',  # 输出格式
                'encoding': 'utf-8',  # 设置默认编码
            },
            # 输出info日志
            'info': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(log_path, 'info-{}.log'.format(time.strftime('%Y-%m-%d'))),
                'maxBytes': 1024 * 1024 * 5,
                'backupCount': 5,
                'formatter': 'standard',
                'encoding': 'utf-8',  # 设置默认编码
            },
            # 控制台输出
            'console': {
                'level': 'DEBUG',
                'filters': ['require_debug_true'],
                'class': 'logging.StreamHandler',
                'formatter': 'simple'
            },
    
        },
        # 配置日志处理器
        'loggers': {
            'django': {
                'handlers': ['default', 'console'],
                'level': 'INFO',  # 日志器接收的最低日志级别
                'propagate': True,
            },
            # log 调用时需要当作参数传入
            'log': {
                'handlers': ['error', 'info', 'console', 'default'],
                'level': 'INFO',
                'propagate': True
            },
        }
    }
    

    使用日志

    $ vim views.py
    
    import logging
    logger = logging.getLogger("log")
    
    template_name = 'home.html'
    logger.info(template_name)
    
    logger.error(template_name)
    

    相关文章

      网友评论

          本文标题:Django日志配置

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