aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/litellm/_logging.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/litellm/_logging.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-4a52a71956a8d46fcb7294ac71734504bb09bcc2.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/_logging.py')
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/_logging.py113
1 files changed, 113 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/_logging.py b/.venv/lib/python3.12/site-packages/litellm/_logging.py
new file mode 100644
index 00000000..151ae600
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/_logging.py
@@ -0,0 +1,113 @@
+import json
+import logging
+import os
+from datetime import datetime
+from logging import Formatter
+
+set_verbose = False
+
+if set_verbose is True:
+ logging.warning(
+ "`litellm.set_verbose` is deprecated. Please set `os.environ['LITELLM_LOG'] = 'DEBUG'` for debug logs."
+ )
+json_logs = bool(os.getenv("JSON_LOGS", False))
+# Create a handler for the logger (you may need to adapt this based on your needs)
+log_level = os.getenv("LITELLM_LOG", "DEBUG")
+numeric_level: str = getattr(logging, log_level.upper())
+handler = logging.StreamHandler()
+handler.setLevel(numeric_level)
+
+
+class JsonFormatter(Formatter):
+ def __init__(self):
+ super(JsonFormatter, self).__init__()
+
+ def formatTime(self, record, datefmt=None):
+ # Use datetime to format the timestamp in ISO 8601 format
+ dt = datetime.fromtimestamp(record.created)
+ return dt.isoformat()
+
+ def format(self, record):
+ json_record = {
+ "message": record.getMessage(),
+ "level": record.levelname,
+ "timestamp": self.formatTime(record),
+ }
+
+ if record.exc_info:
+ json_record["stacktrace"] = self.formatException(record.exc_info)
+
+ return json.dumps(json_record)
+
+
+# Create a formatter and set it for the handler
+if json_logs:
+ handler.setFormatter(JsonFormatter())
+else:
+ formatter = logging.Formatter(
+ "\033[92m%(asctime)s - %(name)s:%(levelname)s\033[0m: %(filename)s:%(lineno)s - %(message)s",
+ datefmt="%H:%M:%S",
+ )
+
+ handler.setFormatter(formatter)
+
+verbose_proxy_logger = logging.getLogger("LiteLLM Proxy")
+verbose_router_logger = logging.getLogger("LiteLLM Router")
+verbose_logger = logging.getLogger("LiteLLM")
+
+# Add the handler to the logger
+verbose_router_logger.addHandler(handler)
+verbose_proxy_logger.addHandler(handler)
+verbose_logger.addHandler(handler)
+
+
+def _turn_on_json():
+ handler = logging.StreamHandler()
+ handler.setFormatter(JsonFormatter())
+
+ # Define a list of the loggers to update
+ loggers = [verbose_router_logger, verbose_proxy_logger, verbose_logger]
+
+ # Iterate through each logger and update its handlers
+ for logger in loggers:
+ # Remove all existing handlers
+ for h in logger.handlers[:]:
+ logger.removeHandler(h)
+
+ # Add the new handler
+ logger.addHandler(handler)
+
+
+def _turn_on_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_proxy_logger.setLevel(level=logging.DEBUG) # set proxy logs to debug
+
+
+def _disable_debugging():
+ verbose_logger.disabled = True
+ verbose_router_logger.disabled = True
+ verbose_proxy_logger.disabled = True
+
+
+def _enable_debugging():
+ verbose_logger.disabled = False
+ verbose_router_logger.disabled = False
+ verbose_proxy_logger.disabled = False
+
+
+def print_verbose(print_statement):
+ try:
+ if set_verbose:
+ print(print_statement) # noqa
+ except Exception:
+ pass
+
+
+def _is_debugging_on() -> bool:
+ """
+ Returns True if debugging is on
+ """
+ if verbose_logger.isEnabledFor(logging.DEBUG) or set_verbose is True:
+ return True
+ return False