django常见bug收集器及部署

  • A+
所属分类:Django资料

程序员最快的成长就是不停的遇到bug,然后处理bug,记录bug,就这样一路杀下来,很多东西就零碎的让自己变成大牛了,虽然过程很辛苦,但人生又哪里那么轻松呢?

以下的代码,除了最后blog.views为APP的bug记录,其他均可以直接复制粘贴使用,但是请记得在项目中创建log文件夹,用来存放bug。

  1. LOGGING = {
  2.     'version': 1,
  3.     'disable_existing_loggers': True,
  4.     'formatters': {
  5.         'standard': {
  6.             'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}  #格式
  7.     },
  8.     'filters': {
  9.     },
  10.     'handlers': {
  11.         'mail_admins': {
  12.             'level': 'ERROR',
  13.             'class': 'django.utils.log.AdminEmailHandler',
  14.             'include_html': True,
  15.             },
  16.         'default': {
  17.             'level':'DEBUG',
  18.             'class':'logging.handlers.RotatingFileHandler',
  19.             'filename': 'log/all.log',     #输出文件地址/文件名
  20.             'maxBytes': 1024*1024*5,                  #文字的字节数
  21.             'backupCount': 5,                         #备份数量 (以下内容同此处)
  22.             'formatter':'standard',
  23.         },
  24.         'error': {
  25.             'level':'ERROR',
  26.             'class':'logging.handlers.RotatingFileHandler',
  27.             'filename': 'log/error.log',
  28.             'maxBytes':1024*1024*5,
  29.             'backupCount': 5,
  30.             'formatter':'standard',
  31.             },
  32.         'console':{
  33.             'level': 'DEBUG',
  34.             'class': 'logging.StreamHandler',
  35.             'formatter': 'standard'
  36.         },
  37.         'request_handler': {
  38.             'level':'DEBUG',
  39.             'class':'logging.handlers.RotatingFileHandler',
  40.             'filename': 'log/script.log',
  41.             'maxBytes': 1024*1024*5,
  42.             'backupCount': 5,
  43.             'formatter':'standard',
  44.             },
  45.         'scprits_handler': {
  46.             'level':'DEBUG',
  47.             'class':'logging.handlers.RotatingFileHandler',
  48.             'filename':'log/script.log',
  49.             'maxBytes': 1024*1024*5,
  50.             'backupCount': 5,
  51.             'formatter':'standard',
  52.             }
  53.     },
  54.     'loggers': {
  55.         'django': {
  56.             'handlers': ['default', 'console'],
  57.             'level': 'DEBUG',
  58.             'propagate': False
  59.         },
  60.         'django.request': {
  61.             'handlers': ['request_handler'],
  62.             'level': 'DEBUG',
  63.             'propagate': False,
  64.             },
  65.         'scripts': {
  66.             'handlers': ['scprits_handler'],
  67.             'level': 'INFO',
  68.             'propagate': False
  69.         },
  70.         # 创建的app的bug收集
  71.         'blog.views': {
  72.             'handlers': ['default', 'error'],
  73.             'level': 'DEBUG',
  74.             'propagate': True
  75.         },
  76.     }
  77. }

app中bug收集器的使用教程

    • 位置:项目/app名/views.py
    • 在头部引入import logging
    • 定义logging
  1. #变量名可自由填写
  2. #blog.views为bug收集器定义的app名称
  3. logger = logging.getLogger('blog.views')
  •     使用try,except捕获异常
  1. try:
  2.     语句
  3. except Exception as e:
  4.     logger.error(e) # 将异常写入至文件中去

查看相关bug文件,查询其中的内容。

 

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: