fix(utils.py): log failure to sync failure callbacks as well

This commit is contained in:
Krrish Dholakia 2024-07-05 14:49:34 -07:00
parent b1b21b0340
commit fd11f63f71
2 changed files with 19 additions and 5 deletions

View file

@ -7,6 +7,7 @@ import os
import re
import smtplib
import subprocess
import threading
import time
import traceback
from datetime import datetime, timedelta
@ -583,6 +584,7 @@ class ProxyLogging:
start_time=datetime.now(),
**request_data,
)
# log the custom exception
await litellm_logging_obj.async_failure_handler(
exception=original_exception,
@ -591,6 +593,16 @@ class ProxyLogging:
end_time=time.time(),
)
threading.Thread(
target=litellm_logging_obj.failure_handler,
args=(
original_exception,
traceback.format_exc(),
time.time(),
time.time(),
),
).start()
for callback in litellm.callbacks:
try:
_callback: Optional[CustomLogger] = None

View file

@ -51,7 +51,8 @@ from litellm.router import Router
class testLogger(CustomLogger):
def __init__(self):
self.reaches_failure_event = False
self.reaches_sync_failure_event = False
self.reaches_async_failure_event = False
async def async_pre_call_hook(
self,
@ -72,10 +73,10 @@ class testLogger(CustomLogger):
)
async def async_log_failure_event(self, kwargs, response_obj, start_time, end_time):
self.reaches_async_failure_event = True
def log_failure_event(self, kwargs, response_obj, start_time, end_time):
self.reaches_failure_event = True
return await super().async_log_failure_event(
kwargs, response_obj, start_time, end_time
)
router = Router(
@ -184,4 +185,5 @@ async def test_chat_completion_request_with_redaction(route, body):
pass
await asyncio.sleep(3)
assert _test_logger.reaches_failure_event is True
assert _test_logger.reaches_async_failure_event is True
assert _test_logger.reaches_sync_failure_event is True