CXCV/Python/Controllers/LogsController.py

39 lines
1.3 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from typing import Self, Any, Optional
from Abstracts.ControllerAbstract import ControllerAbstract
from Interfaces.Procedures.LogsProcedureInterface import LogsProcedureInterface
from Utils.Utils import Utils
class LogsController(ControllerAbstract):
def set_log(self:Self,
message:str,
error:int = 0,
parameters:dict[str, Any|None] = {},
i:int = 0
) -> None:
data:dict[str, Any|None] = Utils.get_action_data(i + 2)
self.cxcv.procedures.get(
LogsProcedureInterface, (self.key, self.via)
).set_log("CXCV", data["file"], data["method"], data["line"], message, error, parameters)
def set_exception(self:Self,
exception:Exception,
message:str,
parameters:dict[str, Any|None] = {},
status:Optional[str] = None,
i:int = 0
) -> None:
trace:list[str] = Utils.get_trace(exception)
data:dict[str, Any|None] = Utils.get_action_data(i + 2)
self.cxcv.procedures.get(
LogsProcedureInterface, (self.key, self.via)
).set_exception("CXCV", data["file"], data["method"], data["line"], message, str(exception), "\n".join(
"- " + line for line in trace
), parameters, status)