mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			30 lines
		
	
	
	
		
			916 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
	
		
			916 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import logging.handlers | ||
|  | 
 | ||
|  | class TestHandler(logging.handlers.BufferingHandler): | ||
|  |     def __init__(self, matcher): | ||
|  |         # BufferingHandler takes a "capacity" argument | ||
|  |         # so as to know when to flush. As we're overriding | ||
|  |         # shouldFlush anyway, we can set a capacity of zero. | ||
|  |         # You can call flush() manually to clear out the | ||
|  |         # buffer. | ||
|  |         logging.handlers.BufferingHandler.__init__(self, 0) | ||
|  |         self.matcher = matcher | ||
|  | 
 | ||
|  |     def shouldFlush(self): | ||
|  |         return False | ||
|  | 
 | ||
|  |     def emit(self, record): | ||
|  |         self.format(record) | ||
|  |         self.buffer.append(record.__dict__) | ||
|  | 
 | ||
|  |     def matches(self, **kwargs): | ||
|  |         """
 | ||
|  |         Look for a saved dict whose keys/values match the supplied arguments. | ||
|  |         """
 | ||
|  |         result = False | ||
|  |         for d in self.buffer: | ||
|  |             if self.matcher.matches(d, **kwargs): | ||
|  |                 result = True | ||
|  |                 break | ||
|  |         return result |