mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-31 10:37:12 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			956 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			956 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import logging
 | |
| import uuid
 | |
| 
 | |
| from django.conf import settings
 | |
| 
 | |
| 
 | |
| class PaperlessHandler(logging.Handler):
 | |
|     def emit(self, record):
 | |
|         if settings.DISABLE_DBHANDLER:
 | |
|             return
 | |
| 
 | |
|         # We have to do the import here or Django will barf when it tries to
 | |
|         # load this because the apps aren't loaded at that point
 | |
|         from .models import Log
 | |
| 
 | |
|         kwargs = {"message": record.msg, "level": record.levelno}
 | |
| 
 | |
|         if hasattr(record, "group"):
 | |
|             kwargs["group"] = record.group
 | |
| 
 | |
|         Log.objects.create(**kwargs)
 | |
| 
 | |
| 
 | |
| class LoggingMixin:
 | |
| 
 | |
|     logging_group = None
 | |
| 
 | |
|     def renew_logging_group(self):
 | |
|         self.logging_group = uuid.uuid4()
 | |
| 
 | |
|     def log(self, level, message, **kwargs):
 | |
|         target = ".".join([self.__class__.__module__, self.__class__.__name__])
 | |
|         logger = logging.getLogger(target)
 | |
| 
 | |
|         getattr(logger, level)(message, extra={
 | |
|             "group": self.logging_group
 | |
|         }, **kwargs)
 |