diff --git a/Dockerfile b/Dockerfile index 183f06205..dc7c25dfd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,4 +52,4 @@ RUN chmod +x entrypoint.sh EXPOSE 4000/tcp ENTRYPOINT ["litellm"] -CMD ["--port", "4000"] \ No newline at end of file +CMD ["--port", "4000", "--debug"] \ No newline at end of file diff --git a/litellm/integrations/langfuse.py b/litellm/integrations/langfuse.py index bc48a78f7..722eb198c 100644 --- a/litellm/integrations/langfuse.py +++ b/litellm/integrations/langfuse.py @@ -8,6 +8,7 @@ from datetime import datetime dotenv.load_dotenv() # Loading env variables using dotenv import traceback from packaging.version import Version +from litellm._logging import verbose_logger class LangFuseLogger: @@ -93,6 +94,7 @@ class LangFuseLogger: print_verbose( f"Langfuse Layer Logging - final response object: {response_obj}" ) + verbose_logger.info(f"Langfuse Layer Logging - logging success") except: traceback.print_exc() print_verbose(f"Langfuse Layer Error - {traceback.format_exc()}") diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 8ce2ee1c2..29a7ccbde 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -1287,18 +1287,27 @@ async def initialize( user_model = model user_debug = debug if debug == True: # this needs to be first, so users can see Router init debugg - from litellm._logging import verbose_router_logger, verbose_proxy_logger + from litellm._logging import ( + verbose_router_logger, + verbose_proxy_logger, + verbose_logger, + ) import logging # this must ALWAYS remain logging.INFO, DO NOT MODIFY THIS - + verbose_logger.setLevel(level=logging.INFO) # sets package logs to info verbose_router_logger.setLevel(level=logging.INFO) # set router logs to info verbose_proxy_logger.setLevel(level=logging.INFO) # set proxy logs to info if detailed_debug == True: - from litellm._logging import verbose_router_logger, verbose_proxy_logger + from litellm._logging import ( + verbose_router_logger, + verbose_proxy_logger, + verbose_logger, + ) import logging - verbose_router_logger.setLevel(level=logging.DEBUG) # set router logs to info + verbose_logger.setLevel(level=logging.DEBUG) # set package log to debug + verbose_router_logger.setLevel(level=logging.DEBUG) # set router logs to debug verbose_proxy_logger.setLevel(level=logging.DEBUG) # set proxy logs to debug litellm.set_verbose = True elif debug == False and detailed_debug == False: diff --git a/litellm/utils.py b/litellm/utils.py index 36bf5c9d6..5c3f419b0 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -36,6 +36,7 @@ os.environ[ ] = filename # use local copy of tiktoken b/c of - https://github.com/BerriAI/litellm/issues/1071 encoding = tiktoken.get_encoding("cl100k_base") import importlib.metadata +from ._logging import verbose_logger from .integrations.traceloop import TraceloopLogger from .integrations.helicone import HeliconeLogger from .integrations.aispend import AISpendLogger @@ -1083,10 +1084,10 @@ class Logging: def success_handler( self, result=None, start_time=None, end_time=None, cache_hit=None, **kwargs ): - print_verbose(f"Logging Details LiteLLM-Success Call") + verbose_logger.info(f"Logging Details LiteLLM-Success Call") # print(f"original response in success handler: {self.model_call_details['original_response']}") try: - print_verbose(f"success callbacks: {litellm.success_callback}") + verbose_logger.debug(f"success callbacks: {litellm.success_callback}") ## BUILD COMPLETE STREAMED RESPONSE complete_streaming_response = None if ( @@ -1242,7 +1243,7 @@ class Logging: ) if callback == "langfuse": global langFuseLogger - print_verbose("reaches langfuse for logging!") + verbose_logger.debug("reaches langfuse for logging!") kwargs = {} for k, v in self.model_call_details.items(): if ( diff --git a/proxy_server_config.yaml b/proxy_server_config.yaml index 5a089c764..5984a75c6 100644 --- a/proxy_server_config.yaml +++ b/proxy_server_config.yaml @@ -41,8 +41,6 @@ model_list: litellm_settings: drop_params: True - set_verbose: True - general_settings: master_key: sk-1234 # [OPTIONAL] Only use this if you to require all calls to contain this key (Authorization: Bearer sk-1234) # database_url: "postgresql://:@:/" # [OPTIONAL] use for token-based auth to proxy