get_custom_loggers_for_type

This commit is contained in:
Ishaan Jaff 2025-03-19 16:36:41 -07:00
parent c3e33495b5
commit 98c5ffdb20

View file

@ -1,4 +1,4 @@
from typing import Callable, List, Set, Union from typing import Callable, List, Set, Type, Union
import litellm import litellm
from litellm._logging import verbose_logger from litellm._logging import verbose_logger
@ -86,21 +86,20 @@ class LoggingCallbackManager:
callback=callback, parent_list=litellm._async_failure_callback callback=callback, parent_list=litellm._async_failure_callback
) )
def remove_callback_from_list_by_object( def remove_callback_from_list_by_object(self, callback_list, obj):
self, callback_list, obj
):
""" """
Remove callbacks that are methods of a particular object (e.g., router cleanup) Remove callbacks that are methods of a particular object (e.g., router cleanup)
""" """
if not isinstance(callback_list, list): # Not list -> do nothing if not isinstance(callback_list, list): # Not list -> do nothing
return return
remove_list=[c for c in callback_list if hasattr(c, '__self__') and c.__self__ == obj] remove_list = [
c for c in callback_list if hasattr(c, "__self__") and c.__self__ == obj
]
for c in remove_list: for c in remove_list:
callback_list.remove(c) callback_list.remove(c)
def _add_string_callback_to_list( def _add_string_callback_to_list(
self, callback: str, parent_list: List[Union[CustomLogger, Callable, str]] self, callback: str, parent_list: List[Union[CustomLogger, Callable, str]]
): ):
@ -254,3 +253,11 @@ class LoggingCallbackManager:
): ):
matched_callbacks.add(callback) matched_callbacks.add(callback)
return matched_callbacks return matched_callbacks
def get_custom_loggers_for_type(
self, callback_type: Type[CustomLogger]
) -> List[CustomLogger]:
"""
Get all custom loggers that are instances of the given class type
"""
return [c for c in self._get_all_callbacks() if isinstance(c, callback_type)]