在不产生大量无用日志文件的情况下,在持续运行的循环中创建日志(使用 python 日志记录模块)的好方法是什么? 一个例子是一个循环,它常量列出一个文件夹,并在它看到特定类型的文件时执行一些操作。 我想记录没有找到文件,或者找到了文件但类型错误,而不是为每个文件夹检查不断记录同一行,因为它可能每秒运行多次。
最佳答案
创建一个 Handler
子类化您需要的任何其他功能。存储您不想存储的最后一条或所有先前记录的消息 emit
再次:
def make_filetype_aware_handler(handler_class):
class DontRepeatFiletypeHandler(handler_class):
def __init__(self, *args, **kwds):
super().__init__(*args, **kwds)
self.previous_types = set()
def emit(self, record):
if not record.file_type in self.previous_types:
self.previous_types.add(record.file_type)
super().emit(record)
return DontRepeatFiletypeHandler
FiletypeStreamHandler = make_filetype_aware_handler(logging.StreamHandler)
logger = logging.getLogger()
logger.addHandler(FiletypeStreamHandler(sys.stderr))
logger.debug('Found file of type %(file_type)', file_type='x-type/zomg')
关于python - 连续循环登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506146/