27 lines
		
	
	
		
			772 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			772 B
		
	
	
	
		
			Python
		
	
	
	
| from django.utils.timezone import now
 | |
| from apps.third.models import Tlog
 | |
| 
 | |
| 
 | |
| class HandleLogMixin:
 | |
|     """
 | |
|     记录请求第三方的日志
 | |
|     """
 | |
| 
 | |
|     def _get_response_ms(self):
 | |
|         """
 | |
|         Get the duration of the request response cycle is milliseconds.
 | |
|         In case of negative duration 0 is returned.
 | |
|         """
 | |
|         response_timedelta = now() - self.log["requested_at"]
 | |
|         response_ms = int(response_timedelta.total_seconds() * 1000)
 | |
|         return max(response_ms, 0)
 | |
| 
 | |
|     def handle_log(self, result, response=None, errors=None):
 | |
|         self.log.update({
 | |
|             "result": result,
 | |
|             "response": response,
 | |
|             "response_ms": self._get_response_ms(),
 | |
|             "errors": errors
 | |
|         })
 | |
|         Tlog(**self.log).save()
 |