From 4cddd1eb310bf9c0c0e55b02a09f70ce77103ee6 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Mon, 17 Jun 2024 18:57:20 -0700 Subject: [PATCH] fix(_logging.py): add loglevel and timestamp to json logs Fixes https://github.com/BerriAI/litellm/issues/4248 --- litellm/_logging.py | 14 ++++++++++---- litellm/proxy/_logging.py | 10 +++++++--- litellm/proxy/_super_secret_config.yaml | 1 + 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/litellm/_logging.py b/litellm/_logging.py index 52a445b49..e3844bec2 100644 --- a/litellm/_logging.py +++ b/litellm/_logging.py @@ -1,6 +1,8 @@ -import logging, os, json -from logging import Formatter +import json +import logging +import os import traceback +from logging import Formatter set_verbose = False @@ -21,8 +23,12 @@ class JsonFormatter(Formatter): super(JsonFormatter, self).__init__() def format(self, record): - json_record = {} - json_record["message"] = record.getMessage() + json_record = { + "message": record.getMessage(), + "level": record.levelname, + "timestamp": self.formatTime(record, self.datefmt), + } + return json.dumps(json_record) diff --git a/litellm/proxy/_logging.py b/litellm/proxy/_logging.py index 655da7b29..a3eb35180 100644 --- a/litellm/proxy/_logging.py +++ b/litellm/proxy/_logging.py @@ -1,7 +1,8 @@ import json import logging -from logging import Formatter import os +from logging import Formatter + from litellm import json_logs # Set default log level to INFO @@ -14,8 +15,11 @@ class JsonFormatter(Formatter): super(JsonFormatter, self).__init__() def format(self, record): - json_record = {} - json_record["message"] = record.getMessage() + json_record = { + "message": record.getMessage(), + "level": record.levelname, + "timestamp": self.formatTime(record, self.datefmt), + } return json.dumps(json_record) diff --git a/litellm/proxy/_super_secret_config.yaml b/litellm/proxy/_super_secret_config.yaml index 9f1709b5f..b5946afd6 100644 --- a/litellm/proxy/_super_secret_config.yaml +++ b/litellm/proxy/_super_secret_config.yaml @@ -79,6 +79,7 @@ litellm_settings: success_callback: ["langfuse"] failure_callback: ["langfuse"] cache: true + json_logs: true general_settings: alerting: ["slack"]