网络编程
位置:首页>> 网络编程>> Python编程>> python logging添加filter教程

python logging添加filter教程

作者:99zhenzhen  发布时间:2022-08-21 00:36:43 

标签:python,logging,filter

例子一


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]

来源:https://blog.csdn.net/kelindame/article/details/70312756

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com