mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 06:57:47 +01:00
feat(logs): add loki logging
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from pythonjsonlogger import jsonlogger
|
||||||
|
|
||||||
from fastapi import Depends, FastAPI
|
from fastapi import Depends, FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
@@ -58,7 +60,24 @@ fastApi.include_router(auth_router)
|
|||||||
fastApi.include_router(categories_router)
|
fastApi.include_router(categories_router)
|
||||||
fastApi.include_router(transactions_router)
|
fastApi.include_router(transactions_router)
|
||||||
|
|
||||||
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s %(message)s')
|
|
||||||
|
for h in list(logging.root.handlers):
|
||||||
|
logging.root.removeHandler(h)
|
||||||
|
|
||||||
|
_log_handler = logging.StreamHandler(sys.stdout)
|
||||||
|
_formatter = jsonlogger.JsonFormatter(
|
||||||
|
fmt='%(asctime)s %(levelname)s %(name)s %(message)s %(pathname)s %(lineno)d %(process)d %(thread)d'
|
||||||
|
)
|
||||||
|
_log_handler.setFormatter(_formatter)
|
||||||
|
|
||||||
|
logging.root.setLevel(logging.INFO)
|
||||||
|
logging.root.addHandler(_log_handler)
|
||||||
|
|
||||||
|
|
||||||
|
for _name in ("uvicorn", "uvicorn.error", "uvicorn.access"):
|
||||||
|
_logger = logging.getLogger(_name)
|
||||||
|
_logger.handlers = [_log_handler]
|
||||||
|
_logger.propagate = True
|
||||||
|
|
||||||
|
|
||||||
@fastApi.middleware("http")
|
@fastApi.middleware("http")
|
||||||
@@ -95,7 +114,7 @@ async def log_traffic(request: Request, call_next):
|
|||||||
"process_time": process_time,
|
"process_time": process_time,
|
||||||
"client_host": client_host
|
"client_host": client_host
|
||||||
}
|
}
|
||||||
logging.info(str(log_params))
|
logging.getLogger(__name__).info("http_request", extra=log_params)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -70,3 +70,5 @@ watchfiles==1.1.0
|
|||||||
wcwidth==0.2.14
|
wcwidth==0.2.14
|
||||||
websockets==15.0.1
|
websockets==15.0.1
|
||||||
yarl==1.20.1
|
yarl==1.20.1
|
||||||
|
|
||||||
|
python-json-logger==2.0.7
|
||||||
@@ -64,3 +64,21 @@ resource "kubectl_manifest" "argocd-tunnel-bind" {
|
|||||||
base_domain = var.cloudflare_domain
|
base_domain = var.cloudflare_domain
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "helm_release" "loki_stack" {
|
||||||
|
name = "loki-stack"
|
||||||
|
repository = "https://grafana.github.io/helm-charts"
|
||||||
|
chart = "loki-stack"
|
||||||
|
namespace = kubernetes_namespace.monitoring.metadata[0].name
|
||||||
|
version = "2.9.12"
|
||||||
|
|
||||||
|
set = [{
|
||||||
|
name = "grafana.enabled"
|
||||||
|
value = "false"
|
||||||
|
}]
|
||||||
|
|
||||||
|
|
||||||
|
depends_on = [
|
||||||
|
helm_release.kube_prometheus_stack
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user