python logging添加filter教程

yipeiwu_com5年前Python基础

例子一

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教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中asyncore的用法实例

本文实例讲述了python中asyncore模块的用法,分享给大家供大家参考。具体方法如下: 实例代码如下: ##asyncore import asyncore,socket...

PyTorch 普通卷积和空洞卷积实例

PyTorch 普通卷积和空洞卷积实例

如下所示: import numpy as np from torchvision.transforms import Compose, ToTensor from torch im...

python读写csv文件方法详细总结

python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来。 在编写python程序的时候需要csv模块或者pandas模...

浅谈Python批处理文件夹中的txt文件

浅谈Python批处理文件夹中的txt文件

1 文件处理形式    近期由于处理大量数据,所以对于采用python进行处理文件的一些操作也打算整理一下;接下来主要说一下如何处理目录下的一系列txt文件...

python实现的防DDoS脚本

python实现的防DDoS脚本

这篇博可以说连开场白都可以省掉了,之所以被DDoS,并不是因为惹了疯狗被追着咬,而是因为VC悲剧之后流量全到simplecd来了。 不仅如此,一些笨蛋们在抓站,一些笨蛋们在用迅雷下载,1...