Make cloud logging optional

This commit is contained in:
2026-03-05 21:04:42 +00:00
parent 694b060fa4
commit 86ed34887b
2 changed files with 13 additions and 8 deletions

View File

@@ -52,6 +52,7 @@ class Settings(BaseSettings):
search_limit: int = 10 search_limit: int = 10
log_name: str = "va_agent_evaluation_logs" log_name: str = "va_agent_evaluation_logs"
log_level: str = "INFO" log_level: str = "INFO"
cloud_logging_enabled: bool = False
@classmethod @classmethod
def settings_customise_sources( def settings_customise_sources(

View File

@@ -27,16 +27,20 @@ def _get_logger() -> logging.Logger:
_eval_log = logger _eval_log = logger
return logger return logger
try: if cfg.cloud_logging_enabled:
client = google.cloud.logging.Client(project=cfg.project_id) try:
handler = CloudLoggingHandler(client, name=cfg.log_name) # async transport client = google.cloud.logging.Client(project=cfg.project_id)
logger.addHandler(handler) handler = CloudLoggingHandler(client, name=cfg.log_name) # async transport
logger.setLevel(getattr(logging, cfg.log_level.upper())) logger.addHandler(handler)
except Exception as e: logger.setLevel(getattr(logging, cfg.log_level.upper()))
# Fallback to console if Cloud Logging is unavailable (local dev) except Exception as e:
# Fallback to console if Cloud Logging is unavailable (local dev)
logging.basicConfig(level=getattr(logging, cfg.log_level.upper()))
logger = logging.getLogger(cfg.log_name)
logger.warning("Cloud Logging setup failed; using console. Error: %s", e)
else:
logging.basicConfig(level=getattr(logging, cfg.log_level.upper())) logging.basicConfig(level=getattr(logging, cfg.log_level.upper()))
logger = logging.getLogger(cfg.log_name) logger = logging.getLogger(cfg.log_name)
logger.warning("Cloud Logging setup failed; using console. Error: %s", e)
_eval_log = logger _eval_log = logger
return logger return logger