diff --git a/CHANGELOG.md b/CHANGELOG.md index 959df636..01f1c5f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ ## [unreleased] -### Changed +### CHanged - Updated PR template - Generalised issue templates to make them more user-friendly for people outside our organisation +- Moved logging setup out of app lifespan and db initialisation logic ### Fixed - Updated version of external images used in GitHub actions diff --git a/src/chanjo2/logger.py b/src/chanjo2/logger.py new file mode 100644 index 00000000..684d74dc --- /dev/null +++ b/src/chanjo2/logger.py @@ -0,0 +1,14 @@ +import logging + +import uvicorn + +LOG = logging.getLogger("uvicorn.access") + + +console_formatter = uvicorn.logging.ColourizedFormatter( + "{levelprefix} {asctime} : {message}", style="{", use_colors=True +) +if LOG.handlers: + LOG.handlers[0].setFormatter(console_formatter) +else: + logging.basicConfig() diff --git a/src/chanjo2/main.py b/src/chanjo2/main.py index 633d6c73..540265e3 100644 --- a/src/chanjo2/main.py +++ b/src/chanjo2/main.py @@ -1,19 +1,17 @@ -import logging import os from contextlib import asynccontextmanager from typing import List, Tuple -import uvicorn from fastapi import FastAPI, status from fastapi.staticfiles import StaticFiles from chanjo2 import __version__ from chanjo2.dbutil import engine from chanjo2.endpoints import cases, coverage, intervals, overview, report, samples +from chanjo2.logger import LOG from chanjo2.models.sql_models import Base from chanjo2.populate_demo import load_demo_data -LOG = logging.getLogger("uvicorn.access") APP_ROUTER_TAGS: List[Tuple] = [ (intervals.router, "intervals"), (coverage.router, "coverage"), @@ -56,15 +54,6 @@ def configure_static(app): async def startup_db(): - # Configure logging - console_formatter = uvicorn.logging.ColourizedFormatter( - "{levelprefix} {asctime} : {message}", style="{", use_colors=True - ) - if LOG.handlers: - LOG.handlers[0].setFormatter(console_formatter) - else: - logging.basicConfig() - # Create database tables create_db_and_tables()