zoukankan      html  css  js  c++  java
  • 万里长征第二步——django个人博客(第二步 ——日志记录器)

    1. 定义日志记录器
    2. 可以在setting.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': 'log/all.log',     #日志输出文件
      'maxBytes': 1024*1024*5,                  #文件大小
      'backupCount': 5,                         #备份份数
      'formatter':'standard',                   #使用哪种formatters日志格式
      },
      'error': {
      'level':'ERROR',
      'class':'logging.handlers.RotatingFileHandler',
      'filename': 'log/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': 'log/script.log',
      'maxBytes': 1024*1024*5,
      'backupCount': 5,
      'formatter':'standard',
                  },
      'scprits_handler': {
      'level':'DEBUG',
      'class':'logging.handlers.RotatingFileHandler',
      'filename':'log/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
      },
          }
      }
    3. 在views.py里调用日志记录器
      import logging #调用日志记录器
      from django.shortcuts import render
      
      logging = logging.getLogger('blog.views') #调用日志器中的 'blog.views' 函数
      
      # Create your views here.
      def index(request):
      try:
              file = open('sss.txt','r')  #打开一个不存在的文件
      except Exception as e:
              logging.error(e)  #捕获错误,记录入日志中
      return render(request, 'index.html', locals())
  • 相关阅读:
    vsCode 使用 PHP Intelephense插件函数跳转跟踪
    acme.sh 生成证书一直卡在Getting domain auth token for each domain
    用命令行执行php脚本输出乱码
    js检测是否是手机平台
    个人知识结构索引
    离线环境下安装ansible,借助有网环境下pip工具
    zabbix之微信告警(python版):微信个人报警,微信企业号告警脚本
    使用ansible结合FTP部署zabbix_agent
    datax的可视化-datax-web
    Finereport决策报表
  • 原文地址:https://www.cnblogs.com/ymjr/p/5539740.html
Copyright © 2011-2022 走看看