Django的日志操作,记录一下自己的使用

日志使用的流程:

1.先要在settings.py 中加入日志的配置

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': '[%(levelname)s][%(asctime)s][%(filename)s][%(funcName)s][%(lineno)d] > %(message)s'
        },
        'simple': {
            'format': '[%(levelname)s]> %(message)s'
        },
    },
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'default': {
            'level': 'DEBUG',  # 日志级别
            'class': 'logging.handlers.RotatingFileHandler',  # 输出到文件
            'filename': os.path.join(LOGS_DIR, 'django.log'),  # 日志文件,请确保修改'filename'路径为运行Django应用的用户有权限写入的一个位置
            'maxBytes': 1024 * 1024 * 5,  # 5 MB 文件大小
            'backupCount': 60,  # 备份份数
            'formatter': 'standard',  # 使用哪种日志格式
        },
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler', # 输出到控制台,这个类指定的不同输出方式不一样,下边是这个地方指定的类所需要的参数
            'formatter': 'simple'
        },
        'file': {
           'level': 'DEBUG',
           'class': 'logging.handlers.TimedRotatingFileHandler',
           # TimedRotatingFileHandler的参数, 其他博客上说这个类可以按照日期分割日志,但是我没试出来
           # 参照https://docs.python.org/3/library/logging.handlers.html#timedrotatingfilehandler
           # 目前设定每天一个日志文件
           'filename': os.path.join(LOGS_DIR, 'django.log'),
           'when': 'midnight',
           'interval': 1,
           'backupCount': 60,
           'formatter': 'standard'
          },
        # 'file_handler': {
        #      'level': 'INFO',
        #      'class': 'logging.handlers.TimedRotatingFileHandler',
        #      'filename': os.path.join(LOGS_DIR, 'django.log'),
        #      'formatter': 'standard'
        # },  # 用于文件输出
    },
    'loggers': {
        'django.debug': {
            'handlers': ['default', 'console'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django.everyday': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
            'propagate': True,
        },
        # 'django.request': {
        #     'handlers': ['mail_admins'],
        #     'level': 'ERROR',
        #     'propagate': False,
        # },
    }
}

 

2.去视图中实例化一个日志记录的对象

logger = logging.getLogger("django.everyday")

实例化时传入的参数应该是配置文件内loggers容器内声明好的容器

 

3.实例化对象后在需要输出日志的地方写上输出语句

logger.info(msg)
logger.error(e)

logger有不同的信息,调用不同方法写入不同的类型的信息

一般info是正常信息,warning是警告信息,error是错误信息,常用的就这些

 

上一篇:css3基础教程:CSS3弹性盒模型


下一篇:python日志