zoukankan      html  css  js  c++  java
  • Django日志模块配置

    django日志模块

    • 日志模块工作流程

      1. 产生日志(日志实例)
      2. 渲染格式(格式化)
      3. 匹配过滤(过滤器)
      4. 持久化(处理器)
    • 格式器formatter

      关键词 描述
      asctime 时间(2018-01-01 23:05:15,000)
      threadName 线程名字
      thread 线程id
      pathname 日志的文件路径
      funcName 打印日志的函数名字
      lineno 打印日志的代码行
      levelname 日志打印级别
      message 日志的具体信息

      asctime pathname funName lineno levelname message

    • 处理器handler

      对日志进行处理,比如:写进文件,打印屏幕

    • 过滤器filter

      import logging
      class TestFilter(logging.Filter):
      	def filter(self,record):
      		if '----' in record.msg:
      			return False   # 会被过滤
      		else:
      			return True	  # 会被打印
      
    • 日志实例logger

      LOGGING = {
          'version':1,
      	'formatters':{
      		'standard':{
      			'format':'%(asctime)s [%(threadName)s: %(thread)d]'
      					'%(pathname)s':%(funcName)s:%(lineno)d]%(levelname)s-%(message)s'
      		}
      	},
      	'filters':{
              'test':{
                  '()':'过滤器TestFilter路径',
              }
      	},
      	'handlers':{
      		# 终端处理器
      		'console_handler':{
      			'level':'INFO',
      			'class':'logging.StreamHandler',
      			'formatter':'standard'
      		},
      		# 文件处理器
      		'file_handler':{
      			'level':'DEBUG',
      			'class':'logging.handlers.RotatingFileHandler',
                  'filename':os.path.join(LOG_DIR,'backend.log')
      			'maxBytes':'1024*1024*1024' # class参数如果日志大小超了会新建文件
      			'formatter':'standard',
                  'encoding':'utf-8'
      		}
      	},
          'loggers':{
              'django':{
                  'handlers':['console_handler','file_handler'],
                  'filters':['test'],
                  'level':'DEBUG'
              }
          }
      }
      
      • 入口点

        1. 建立django环境

        2. def logdemo():
          	logger = logging.getLogger('django')
          	logger.info('hello')
          
  • 相关阅读:
    iOS 自动化测试踩坑(二):Appium 架构原理、环境命令、定位方式
    干货 | 掌握 Selenium 元素定位,解决 Web 自动化测试痛点
    代理技术哪家强?接口 Mock 测试首选 Charles
    浅谈MVC缓存
    PetaPoco 快速上手
    解释器模式(26)
    享元模式(25)
    中介者模式(24)
    职责链模式(23)
    命令模式(22)
  • 原文地址:https://www.cnblogs.com/jimmyhe/p/11184711.html
Copyright © 2011-2022 走看看