From b06628ee31f875aed0217d0d6a90fa2e5ddbfa9f Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Mon, 20 Nov 2023 22:10:24 -0800 Subject: [PATCH] Format Django initializing outputs using Khoj logger format - Collect STDOUT from the `migrate', `collectstatic' commands and output using the Khoj logger format and verbosity settings - Only show Django `collectstatic' command output in verbose mode - Fix showing the Initializing Khoj log line by moving it after logger level set --- src/khoj/app/settings.py | 2 +- src/khoj/main.py | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/khoj/app/settings.py b/src/khoj/app/settings.py index 721bcc87..97a058da 100644 --- a/src/khoj/app/settings.py +++ b/src/khoj/app/settings.py @@ -24,7 +24,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent.parent.parent SECRET_KEY = os.getenv("KHOJ_DJANGO_SECRET_KEY") # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = os.getenv("KHOJ_DEBUG", "False") == "True" +DEBUG = os.getenv("KHOJ_DEBUG") == "True" ALLOWED_HOSTS = [".khoj.dev", "localhost", "127.0.0.1", "[::1]", "beta.khoj.dev"] diff --git a/src/khoj/main.py b/src/khoj/main.py index c5e1f277..b832151c 100644 --- a/src/khoj/main.py +++ b/src/khoj/main.py @@ -3,6 +3,8 @@ """ # Standard Packages +from contextlib import redirect_stdout +import io import os import sys import locale @@ -33,10 +35,14 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "khoj.app.settings") django.setup() # Initialize Django Database -call_command("migrate", "--noinput") +db_migrate_output = io.StringIO() +with redirect_stdout(db_migrate_output): + call_command("migrate", "--noinput") # Initialize Django Static Files -call_command("collectstatic", "--noinput") +collectstatic_output = io.StringIO() +with redirect_stdout(collectstatic_output): + call_command("collectstatic", "--noinput") # Initialize the Application Server app = FastAPI() @@ -79,14 +85,16 @@ def run(should_start_server=True): args = cli(state.cli_args) set_state(args) - logger.info(f"🚒 Initializing Khoj v{state.khoj_version}") - # Set Logging Level if args.verbose == 0: logger.setLevel(logging.INFO) elif args.verbose >= 1: logger.setLevel(logging.DEBUG) + logger.info(f"🚒 Initializing Khoj v{state.khoj_version}") + logger.info(f"📦 Initializing DB:\n{db_migrate_output.getvalue().strip()}") + logger.debug(f"🌍 Initializing Web Client:\n{collectstatic_output.getvalue().strip()}") + initialization() # Create app directory, if it doesn't exist