mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +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
							 |