django常见bug收集器及部署

李金龙
李金龙
管理员
567
文章
0
粉丝
Django资料django常见bug收集器及部署已关闭评论2,615字数 398阅读模式

程序员最快的成长就是不停的遇到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文件,查询其中的内容。

 

 
李金龙
  • 本文由 李金龙 发表于2017年6月8日 22:06:18
  • 转载请务必保留本文链接:https://www.lijinlong.cc/django/djzl/1974.html