@@ -0,0 +1,43 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
_log = logging.getLogger("app.lab.audit")
|
||||
|
||||
|
||||
def write_audit(
|
||||
action: str,
|
||||
entity_type: str,
|
||||
entity_id: str | None,
|
||||
user_id: str | None = None,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
) -> None:
|
||||
_log.info(
|
||||
"lab action=%s entity=%s/%s user=%s metadata=%s",
|
||||
action,
|
||||
entity_type,
|
||||
entity_id,
|
||||
user_id or "system",
|
||||
json.dumps(metadata or {}, ensure_ascii=False),
|
||||
)
|
||||
|
||||
|
||||
def write_calculation_run(
|
||||
recipe_id: str,
|
||||
status: str,
|
||||
kpi_results: dict[str, Any],
|
||||
*,
|
||||
duration_ms: int | None = None,
|
||||
error_message: str | None = None,
|
||||
) -> None:
|
||||
_log.info(
|
||||
"lab calculation recipe=%s status=%s duration_ms=%s engine=%s error=%s kpi=%s",
|
||||
recipe_id,
|
||||
status,
|
||||
duration_ms,
|
||||
"native-1",
|
||||
error_message or "",
|
||||
json.dumps(kpi_results, ensure_ascii=False),
|
||||
)
|
||||
Reference in New Issue
Block a user