Django 日志模块 logging 的配置

http://blog.csdn.net/novostary/article/details/52424116

本文将通过一个实际的例子来说明如何配置 logging 模块。更多信息可以参考 Django 的官网文档。 
配置信息需要在 setting.py 文件中进行添加。

setting.py
DEBUG = True # 通过这种方式可以打开 DEBUG 模式
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }, # 针对 DEBUG = True 的情况
    },
    'formatters': {
        'standard': {
            'format': '%(levelname)s %(asctime)s %(pathname)s %(filename)s %(module)s %(funcName)s %(lineno)d: %(message)s'
        }, # 对日志信息进行格式化,每个字段对应了日志格式中的一个字段,更多字段参考官网文档,我认为这些字段比较合适,输出类似于下面的内容
        # INFO 2016-09-03 16:25:20,067 /home/ubuntu/mysite/views.py views.py views get 29: some info...
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
             'formatter':'standard'
        },
        'file_handler': {
             'level': 'DEBUG',
             'class': 'logging.handlers.TimedRotatingFileHandler',
             'filename': '/tmp/byod/byodadmin/byod.admin.log',
             'formatter':'standard'
        }, # 用于文件输出
        'console':{
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'standard'
        },
    },
    'loggers': {
        'django': {
            'handlers' :['file_handler', 'console'],
            'level':'DEBUG',
            'propagate': True # 是否继承父类的log信息
        }, # handlers 来自于上面的 handlers 定义的内容
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        },
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

配置好之后,在代码中可按照如下方法使用

import logging
logger = logging.getLogger("django") # 为loggers中定义的名称
logger.info("some info...")
  • 1
  • 2
  • 3
  • 4

可用的函数主要有五种:

logger.debug()
logger.info()
logger.warning()
logger.error()
logger.critical()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注:如果 level 设置为 DEBUG,打印的信息非常多。数据库的查询语句也会打印出来。

DEBUG 2016-09-03 16:24:46,543 /usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py utils

猜你喜欢

转载自blog.csdn.net/frank_good/article/details/79230292
今日推荐