logging enhancements
This commit is contained in:
parent
2dec6d5384
commit
569aefeccb
8 changed files with 88 additions and 20 deletions
25
app/main.py
25
app/main.py
|
|
@ -4,8 +4,7 @@ from fastapi import FastAPI
|
|||
from injectable import load_injection_container
|
||||
|
||||
from app.config import get_settings
|
||||
from app.core.core import WebhookProcessor
|
||||
from app.util.logging import LoggingHandler, ExternalLoggingHandler
|
||||
from app.util.logging import HandlerFactory
|
||||
|
||||
|
||||
class KarlApplication:
|
||||
|
|
@ -13,6 +12,7 @@ class KarlApplication:
|
|||
def __init__(self) -> None:
|
||||
self._set_logging()
|
||||
_app = FastAPI(title="Karl", version="0.1.0")
|
||||
self._set_middlewares(_app)
|
||||
self._set_routes(_app)
|
||||
self._set_events(_app)
|
||||
self._init_services()
|
||||
|
|
@ -23,7 +23,12 @@ class KarlApplication:
|
|||
await self._app.__call__(scope, receive, send)
|
||||
|
||||
def _set_logging(self):
|
||||
logging.basicConfig(level=logging.INFO, handlers=[LoggingHandler()])
|
||||
settings = get_settings()
|
||||
logging.addLevelName(5, "TRACE")
|
||||
logging.Logger.trace = lambda s, msg, *args, **kwargs: s.log(5, msg, *args, **kwargs)
|
||||
logging.basicConfig(level=settings.logging.level,
|
||||
handlers=HandlerFactory.create(HandlerFactory.Target.ALL, handler_prefix='karl.',
|
||||
file_path=settings.logging.path))
|
||||
|
||||
loggers = (
|
||||
"uvicorn",
|
||||
|
|
@ -33,12 +38,16 @@ class KarlApplication:
|
|||
"asyncio",
|
||||
"starlette",
|
||||
)
|
||||
external_handler = ExternalLoggingHandler()
|
||||
external_handlers = HandlerFactory.create(HandlerFactory.Target.ALL, file_path=settings.logging.path)
|
||||
for logger_name in loggers:
|
||||
logging_logger = logging.getLogger(logger_name)
|
||||
logging_logger.handlers = [external_handler]
|
||||
logging_logger.handlers = external_handlers
|
||||
logging_logger.propagate = False
|
||||
|
||||
def _set_middlewares(self, app: FastAPI):
|
||||
from app.web.middlewares import LoggingMiddleware
|
||||
app.add_middleware(LoggingMiddleware)
|
||||
|
||||
def _set_routes(self, app: FastAPI):
|
||||
from app.core.router import router as core_router
|
||||
app.include_router(core_router)
|
||||
|
|
@ -52,11 +61,9 @@ class KarlApplication:
|
|||
def _init_services(self):
|
||||
logger = logging.getLogger(__name__)
|
||||
load_injection_container()
|
||||
webhook_service = WebhookProcessor()
|
||||
logger.info(webhook_service.health)
|
||||
|
||||
|
||||
def app():
|
||||
def run():
|
||||
return KarlApplication()
|
||||
|
||||
|
||||
|
|
@ -65,7 +72,7 @@ if __name__ == "__main__":
|
|||
|
||||
settings = get_settings()
|
||||
uvicorn.run(
|
||||
"app.main:app",
|
||||
"app.main:run",
|
||||
factory=True,
|
||||
host=settings.app.host,
|
||||
port=settings.app.port,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue