Django logging module configuration

django log module

  • Log Module Workflow
    1. Generating a log (log Example)
    2. Render format (format)
    3. Matching filter (filter)
    4. Persistence (processor)
  • Formatter formatter

    Key words description
    asctime Time (2018-01-0123: 05: 15,000)
    threadName Thread name
    thread Thread id
    pathname Log file path
    funcName Print log function name
    lineno Print log lines
    levelname Print log level
    message Specific information log

    asctime pathname funName lineno levelname message

  • Processor handler

    The log processing, such as: written documents, print screen

  • Filter filter

    import logging
    class TestFilter(logging.Filter):
      def filter(self,record):
          if '----' in record.msg:
              return False   # 会被过滤
          else:
              return True   # 会被打印
  • Log instance 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'
            }
        }
    }
    • Entry point

      1. Django build environment

      2. def logdemo():
         logger = logging.getLogger('django')
         logger.info('hello')

Guess you like

Origin www.cnblogs.com/jimmyhe/p/11184711.html