当前位置 主页 > 网站技术 > 代码类 >

    python logging添加filter教程

    栏目:代码类 时间:2019-12-25 06:09

    例子一

    def filter(self, record):
        """Our custom record filtering logic.
        Built-in filtering logic (via logging.Filter) is too limiting.
        """
        if not self.filters:
          return True
        matched = False
        rname = record.name # shortcut
        for name in self.filters:
          if rname == name or rname.startswith(name+'.'):
            matched = True
        return matched

    例子二

    def _create_log_handlers(stream):
      """Create and return a default list of logging.Handler instances.
      Format WARNING messages and above to display the logging level, and
      messages strictly below WARNING not to display it.
      Args:
       stream: See the configure_logging() docstring.
      """
      # Handles logging.WARNING and above.
      error_handler = logging.StreamHandler(stream)
      error_handler.setLevel(logging.WARNING)
      formatter = logging.Formatter("%(levelname)s: %(message)s")
      error_handler.setFormatter(formatter)
     
      # Create a logging.Filter instance that only accepts messages
      # below WARNING (i.e. filters out anything WARNING or above).
      non_error_filter = logging.Filter()
      # The filter method accepts a logging.LogRecord instance.
      non_error_filter.filter = lambda record: record.levelno < logging.WARNING
     
      non_error_handler = logging.StreamHandler(stream)
      non_error_handler.addFilter(non_error_filter)
      formatter = logging.Formatter("%(message)s")
      non_error_handler.setFormatter(formatter)
     
      return [error_handler, non_error_handler]

    例子三

    def _default_handlers(stream):
      """Return a list of the default logging handlers to use.
      Args:
       stream: See the configure_logging() docstring.
      """
      # Create the filter.
      def should_log(record):
        """Return whether a logging.LogRecord should be logged."""
        # FIXME: Enable the logging of autoinstall messages once
        #    autoinstall is adjusted. Currently, autoinstall logs
        #    INFO messages when importing already-downloaded packages,
        #    which is too verbose.
        if record.name.startswith("webkitpy.thirdparty.autoinstall"):
          return False
        return True
     
      logging_filter = logging.Filter()
      logging_filter.filter = should_log
     
      # Create the handler.
      handler = logging.StreamHandler(stream)
      formatter = logging.Formatter("%(name)s: [%(levelname)s] %(message)s")
      handler.setFormatter(formatter)
      handler.addFilter(logging_filter)
     
      return [handler]
    
    

    以上这篇python logging添加filter教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。