fix: logging.getLogger gets properly configured logger
This commit is contained in:
parent
2d3699ad00
commit
27d1332b35
6 changed files with 133 additions and 34 deletions
79
app/main.py
79
app/main.py
|
|
@ -1,41 +1,68 @@
|
|||
from fastapi import FastAPI, Request
|
||||
from fastapi.responses import HTMLResponse
|
||||
from jinja2 import Environment, FileSystemLoader, select_autoescape
|
||||
import logging
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
from app.api.v1 import router as api_v1_router
|
||||
from app.config import get_settings
|
||||
from app.core.core import WebhookProcessor
|
||||
|
||||
# Inicjalizacja Jinja2
|
||||
templates_env = Environment(
|
||||
loader=FileSystemLoader("app/templates"),
|
||||
autoescape=select_autoescape(["html", "xml"]),
|
||||
)
|
||||
|
||||
app = FastAPI(title="Karl", version="0.1.0")
|
||||
|
||||
# Rejestracja routera API pod /api/v1
|
||||
app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"])
|
||||
# app.add_event_handler()
|
||||
|
||||
webhook_service = WebhookProcessor()
|
||||
print(webhook_service.health)
|
||||
from app.util.logging import LoggingHandler, ExternalLoggingHandler
|
||||
|
||||
|
||||
# Przykładowy endpoint HTML
|
||||
@app.get("/", response_class=HTMLResponse)
|
||||
async def index(request: Request) -> HTMLResponse:
|
||||
template = templates_env.get_template("index.html")
|
||||
html = template.render(title="Strona główna", request=request)
|
||||
return HTMLResponse(content=html)
|
||||
class KarlApplication:
|
||||
def __init__(self) -> None:
|
||||
self._set_logging()
|
||||
app = FastAPI(title="Karl", version="0.1.0")
|
||||
self._set_routes(app)
|
||||
self._set_events(app)
|
||||
self._init_services()
|
||||
pass
|
||||
|
||||
def _set_logging(self):
|
||||
logging.basicConfig(level=logging.INFO, handlers=[LoggingHandler()])
|
||||
|
||||
loggers = (
|
||||
"uvicorn",
|
||||
"uvicorn.access",
|
||||
"uvicorn.error",
|
||||
"fastapi",
|
||||
"asyncio",
|
||||
"starlette",
|
||||
)
|
||||
external_handler = ExternalLoggingHandler()
|
||||
for logger_name in loggers:
|
||||
logging_logger = logging.getLogger(logger_name)
|
||||
logging_logger.handlers = [external_handler]
|
||||
logging_logger.propagate = False
|
||||
|
||||
def _set_routes(self, app: FastAPI):
|
||||
from app.core.router import router as core_router
|
||||
app.include_router(core_router)
|
||||
from app.api.v1 import router as api_v1_router
|
||||
app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"])
|
||||
pass
|
||||
|
||||
def _set_events(self, app: FastAPI):
|
||||
pass
|
||||
|
||||
def _init_services(self):
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
webhook_service = WebhookProcessor()
|
||||
logger.info(webhook_service.health)
|
||||
|
||||
|
||||
def run() -> None:
|
||||
def app():
|
||||
return KarlApplication()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
|
||||
settings = get_settings()
|
||||
uvicorn.run(
|
||||
"app.main:app",
|
||||
factory=True,
|
||||
host=settings.app.host,
|
||||
port=settings.app.port,
|
||||
reload=settings.app.reload,
|
||||
log_config=None,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue