From 704da1d4dec52d47e6d2b3135efe7932ec6979c8 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 12 Apr 2024 14:40:04 -0300 Subject: [PATCH] Update log file handling and error handling in logger.py --- src/backend/base/langflow/main.py | 20 ++++++++++++----- src/backend/base/langflow/utils/logger.py | 26 ++++++++++++----------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/backend/base/langflow/main.py b/src/backend/base/langflow/main.py index 1a369649e..e71c2d81e 100644 --- a/src/backend/base/langflow/main.py +++ b/src/backend/base/langflow/main.py @@ -21,14 +21,24 @@ from langflow.utils.logger import configure def get_lifespan(fix_migration=False, socketio_server=None): + from langflow.version import __version__ + @asynccontextmanager async def lifespan(app: FastAPI): nest_asyncio.apply() - initialize_services(fix_migration=fix_migration, socketio_server=socketio_server) - setup_llm_caching() - LangfuseInstance.update() - create_or_update_starter_projects() - yield + # Startup message + if __version__: + rprint(f"[bold green]Starting Langflow v{__version__}...[/bold green]") + else: + rprint("[bold green]Starting Langflow...[/bold green]") + try: + initialize_services(fix_migration=fix_migration, socketio_server=socketio_server) + setup_llm_caching() + LangfuseInstance.update() + create_or_update_starter_projects() + yield + except Exception as exc: + logger.error(exc) # Shutdown message rprint("[bold red]Shutting down Langflow...[/bold red]") teardown_services() diff --git a/src/backend/base/langflow/utils/logger.py b/src/backend/base/langflow/utils/logger.py index bc81eaa77..48783710a 100644 --- a/src/backend/base/langflow/utils/logger.py +++ b/src/backend/base/langflow/utils/logger.py @@ -54,22 +54,24 @@ def configure(log_level: Optional[str] = None, log_file: Optional[Path] = None, if not log_file: cache_dir = Path(user_cache_dir("langflow")) + logger.debug(f"Cache directory: {cache_dir}") log_file = cache_dir / "langflow.log" + logger.debug(f"Log file: {log_file}") + try: + log_file = Path(log_file) + log_file.parent.mkdir(parents=True, exist_ok=True) - log_file = Path(log_file) - log_file.parent.mkdir(parents=True, exist_ok=True) - - logger.add( - sink=str(log_file), - level=log_level.upper(), - format=log_format, - rotation="10 MB", # Log rotation based on file size - serialize=True, - ) + logger.add( + sink=str(log_file), + level=log_level.upper(), + format=log_format, + rotation="10 MB", # Log rotation based on file size + serialize=True, + ) + except Exception as exc: + logger.error(f"Error setting up log file: {exc}") logger.debug(f"Logger set up with log level: {log_level}") - if log_file: - logger.debug(f"Log file: {log_file}") setup_uvicorn_logger() setup_gunicorn_logger()