Django日志器的配置与使用

        

1. 在settings.py中配置如下代码

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
    'standard': {
        'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}  #日志格式
},
'filters': {
},
'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'class': 'django.utils.log.AdminEmailHandler',
        'include_html': True,
        },
    'default': {
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'filename': 'weblog/all.log',                #日志输出文件
        'maxBytes': 1024*1024*5,                  #文件大小
        'backupCount': 5,                         #备份份数
        'formatter':'standard',                   #使用哪种formatters日志格式
    },
    'error': {
        'level':'ERROR',
        'class':'logging.handlers.RotatingFileHandler',
        'filename': 'weblog/error.log',
        'maxBytes':1024*1024*5,
        'backupCount': 5,
        'formatter':'standard',
        },
    'console':{
        'level': 'DEBUG',
        'class': 'logging.StreamHandler',
        'formatter': 'standard'
    },
    'request_handler': {
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'filename': 'weblog/script.log',
        'maxBytes': 1024*1024*5,
        'backupCount': 5,
        'formatter':'standard',
        },
    'scprits_handler': {
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'filename':'weblog/script.log',
        'maxBytes': 1024*1024*5,
        'backupCount': 5,
        'formatter':'standard',
        }
},
'loggers': {
    'django': {
        'handlers': ['default', 'console'],
        'level': 'DEBUG',
        'propagate': False
    },
    'django.request': {
        'handlers': ['request_handler'],
        'level': 'DEBUG',
        'propagate': False,
        },
    'scripts': {
        'handlers': ['scprits_handler'],
        'level': 'INFO',
        'propagate': False
    },
    'blog.views': {
        'handlers': ['default', 'error'],
        'level': 'DEBUG',
        'propagate': True
    },
  }
}

2. 在根目录下建立weblog文件夹

如果想在其他目录下建立日志文件,需要在Logging配置文件中把相应的错误日志文件的路径更改一下。

3. 在blog.views中捕获异常

如果想在多个views中捕获异常,需要在Logging配置文件中增加类似于blog.views的配置选项。

from django.shortcuts import render_to_response
import logging #导入logging类

logger=logging.getLogger("blog.views") #生成日志器

def index(request):
try:
    file=open('test.txt')
except Exception as e:
    print 'hello'
    logger.error(e)  #调用日志方法
return render_to_response("index.html",{})

logger的一些方法

。 logger.debug()
。 logger.info()
。 logger.warning()
。 logger.error()
。 logger.critical()
。 logger.log()
。 logger.exception()

猜你喜欢

转载自hugoren.iteye.com/blog/2303819
今日推荐