???????????? log_id ????????
(
self,
token_id: Optional[int],
operation: str,
request_data: Dict[str, Any],
response_data: Dict[str, Any],
status_code: int,
duration: float,
log_id: Optional[int] = None,
status_text: Optional[str] = None,
progress: Optional[int] = None,
)
| 2737 | debug_logger.log_error(f"Failed to update request log progress: {e}") |
| 2738 | |
| 2739 | async def _log_request( |
| 2740 | self, |
| 2741 | token_id: Optional[int], |
| 2742 | operation: str, |
| 2743 | request_data: Dict[str, Any], |
| 2744 | response_data: Dict[str, Any], |
| 2745 | status_code: int, |
| 2746 | duration: float, |
| 2747 | log_id: Optional[int] = None, |
| 2748 | status_text: Optional[str] = None, |
| 2749 | progress: Optional[int] = None, |
| 2750 | ): |
| 2751 | """???????????? log_id ????????""" |
| 2752 | try: |
| 2753 | effective_status_text = status_text or ( |
| 2754 | "completed" if status_code == 200 else "failed" if status_code >= 400 else "processing" |
| 2755 | ) |
| 2756 | effective_progress = progress |
| 2757 | if effective_progress is None: |
| 2758 | effective_progress = 100 if status_code == 200 else 0 if status_code >= 400 else 0 |
| 2759 | effective_progress = max(0, min(100, int(effective_progress))) |
| 2760 | |
| 2761 | request_body = json.dumps(request_data, ensure_ascii=False) |
| 2762 | response_body = json.dumps(response_data, ensure_ascii=False) |
| 2763 | |
| 2764 | if log_id: |
| 2765 | await self.db.update_request_log( |
| 2766 | log_id, |
| 2767 | token_id=token_id, |
| 2768 | operation=operation, |
| 2769 | request_body=request_body, |
| 2770 | response_body=response_body, |
| 2771 | status_code=status_code, |
| 2772 | duration=duration, |
| 2773 | status_text=effective_status_text, |
| 2774 | progress=effective_progress, |
| 2775 | ) |
| 2776 | return log_id |
| 2777 | |
| 2778 | log = RequestLog( |
| 2779 | token_id=token_id, |
| 2780 | operation=operation, |
| 2781 | request_body=request_body, |
| 2782 | response_body=response_body, |
| 2783 | status_code=status_code, |
| 2784 | duration=duration, |
| 2785 | status_text=effective_status_text, |
| 2786 | progress=effective_progress, |
| 2787 | ) |
| 2788 | return await self.db.add_request_log(log) |
| 2789 | except Exception as e: |
| 2790 | debug_logger.log_error(f"Failed to log request: {e}") |
| 2791 | return None |
no test coverage detected