From fe1c7214f743083cc956df6aaf40999600acd7e9 Mon Sep 17 00:00:00 2001 From: Kerem Yilmaz Date: Tue, 25 Jun 2024 11:23:27 -0700 Subject: [PATCH] make LOG_LEVEL configurable (#510) --- skyvern/config.py | 1 + skyvern/forge/sdk/forge_log.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/skyvern/config.py b/skyvern/config.py index d790ccd0..1d67f94f 100644 --- a/skyvern/config.py +++ b/skyvern/config.py @@ -29,6 +29,7 @@ class Settings(BaseSettings): ENV: str = "local" EXECUTE_ALL_STEPS: bool = True JSON_LOGGING: bool = False + LOG_LEVEL: str = "INFO" PORT: int = 8000 # Secret key for JWT. Please generate your own secret key in production diff --git a/skyvern/forge/sdk/forge_log.py b/skyvern/forge/sdk/forge_log.py index c9761d9f..912a5b3e 100644 --- a/skyvern/forge/sdk/forge_log.py +++ b/skyvern/forge/sdk/forge_log.py @@ -6,6 +6,14 @@ from structlog.typing import EventDict from skyvern.forge.sdk.core import skyvern_context from skyvern.forge.sdk.settings_manager import SettingsManager +LOGGING_LEVEL_MAP: dict[str, int] = { + "DEBUG": logging.DEBUG, + "INFO": logging.INFO, + "WARNING": logging.WARNING, + "ERROR": logging.ERROR, + "CRITICAL": logging.CRITICAL, +} + def add_kv_pairs_to_msg(logger: logging.Logger, method_name: str, event_dict: EventDict) -> EventDict: """ @@ -73,8 +81,10 @@ def setup_logger() -> None: if SettingsManager.get_settings().JSON_LOGGING else [] ) + LOG_LEVEL_VAL = LOGGING_LEVEL_MAP.get(SettingsManager.get_settings().LOG_LEVEL, logging.INFO) structlog.configure( + wrapper_class=structlog.make_filtering_bound_logger(LOG_LEVEL_VAL), processors=[ structlog.processors.add_log_level, structlog.processors.TimeStamper(fmt="iso"), @@ -82,7 +92,7 @@ def setup_logger() -> None: structlog.processors.format_exc_info, ] + additional_processors - + [renderer] + + [renderer], ) uvicorn_error = logging.getLogger("uvicorn.error") uvicorn_error.disabled = True