0
点赞
收藏
分享

微信扫一扫

• django 的日志记录

在 setting.py中添加以下内容:

import logging
import django.utils.log
import logging.handlers


LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
          'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'
        }

        # 'verbose': {
        #     'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
        #     'style': '{',
        # },
        # 'simple': {
        #     'format': '{levelname} {message}',
        #     'style': '{',
        # },
    },
    'filters': {
        # 'special': {
        #     '()': 'project.logging.SpecialFilter',
        #     'foo': 'bar',
        # },
        # 'require_debug_true': {
        #     '()': 'django.utils.log.RequireDebugTrue',
        # },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            # 'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'standard'
        },
        'file': {   # 记录到日志文件(需要创建对应的目录,否则会出错)
          'level': 'INFO',
          'class': 'logging.handlers.RotatingFileHandler',
          'filename': '/var/log/info.log',  # 日志输出文件
          'maxBytes': 1024*1024*5,   # 文件大小
          'backupCount': 5,  # 备份份数
          'formatter': 'standard',   # 使用哪种formatters日志格式
         }
        # 'mail_admins': {
        #     'level': 'ERROR',
        #     'class': 'django.utils.log.AdminEmailHandler',
        #     'filters': ['special']
        # }
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
        },
        'django.request': {
            'handlers': ['file'],
            'level': 'INFO',
            'propagate': True,
        },
        'xwjz.task': {
            'handlers': ['file'],
            'level': 'INFO',
            'propagate': True,
            # 'filters': ['special']
        }
    }
}

执行过程:

1.在 views中,定义一个logger,名字为以上代码中loggers(日志管理器)中的某一名称,如为’test.task’

2.’test.task’中的handlers为处理器,即要怎么处理这个日志,则转到了上边的handlers中,在handlers中定义日志怎么输出等信息,如以上的files,则表示让日志以文件的形式输出,formatter则表示使用哪种日志格式,日志格式定义在上边的formatters中

举报

相关推荐

0 条评论