fix(proxy_cli.py): enable json logging via litellm_settings param on config

allows user to enable json logs without needing to figure out env variables
This commit is contained in:
Krrish Dholakia 2024-05-29 21:41:20 -07:00
parent 793c7b124b
commit 3167bee25a
3 changed files with 30 additions and 1 deletions

View file

@ -6,7 +6,13 @@ warnings.filterwarnings("ignore", message=".*conflict with protected namespace.*
import threading, requests, os import threading, requests, os
from typing import Callable, List, Optional, Dict, Union, Any, Literal from typing import Callable, List, Optional, Dict, Union, Any, Literal
from litellm.caching import Cache from litellm.caching import Cache
from litellm._logging import set_verbose, _turn_on_debug, verbose_logger, json_logs from litellm._logging import (
set_verbose,
_turn_on_debug,
verbose_logger,
json_logs,
_turn_on_json,
)
from litellm.proxy._types import ( from litellm.proxy._types import (
KeyManagementSystem, KeyManagementSystem,
KeyManagementSettings, KeyManagementSettings,

View file

@ -39,6 +39,16 @@ verbose_proxy_logger.addHandler(handler)
verbose_logger.addHandler(handler) verbose_logger.addHandler(handler)
def _turn_on_json():
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
handler.setFormatter(JsonFormatter())
verbose_router_logger.addHandler(handler)
verbose_proxy_logger.addHandler(handler)
verbose_logger.addHandler(handler)
def _turn_on_debug(): def _turn_on_debug():
verbose_logger.setLevel(level=logging.DEBUG) # set package log to debug verbose_logger.setLevel(level=logging.DEBUG) # set package log to debug
verbose_router_logger.setLevel(level=logging.DEBUG) # set router logs to debug verbose_router_logger.setLevel(level=logging.DEBUG) # set router logs to debug

View file

@ -429,6 +429,19 @@ def run_server(
proxy_config = ProxyConfig() proxy_config = ProxyConfig()
_config = asyncio.run(proxy_config.get_config(config_file_path=config)) _config = asyncio.run(proxy_config.get_config(config_file_path=config))
### LITELLM SETTINGS ###
litellm_settings = _config.get("litellm_settings", None)
if (
litellm_settings is not None
and "json_logs" in litellm_settings
and litellm_settings["json_logs"] == True
):
import litellm
litellm.json_logs = True
litellm._turn_on_json()
### GENERAL SETTINGS ###
general_settings = _config.get("general_settings", {}) general_settings = _config.get("general_settings", {})
if general_settings is None: if general_settings is None:
general_settings = {} general_settings = {}