/
urusai
/
code_sample
Обзор
Документация
Войти
/
urusai
/
code_sample
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/utils/logs/json_logger.py
46 строк
1 KB
nick
linters
30 сен 2024, 16:13
30 сен 2024, 16:13
09a0f4a
Код
Авторство
О чём код?
import json import logging from typing import Union from utils.logs.helper import mask_string from settings.logs.settings import settings_sensus_app LEVEL_TO_NAME = { logging.CRITICAL: "Critical", logging.ERROR: "Error", logging.WARNING: "Warning", logging.INFO: "Information", logging.DEBUG: "Debug", logging.NOTSET: "Trace", } EMPTY_VALUE = "" class JSONLogFormatter(logging.Formatter): """ Кастомизированный класс-форматер для логов в формате json """ def format(self, record: logging.LogRecord, *args, **kwargs) -> Union[dict, str]: """ Преобразование объект журнала в json :param record: объект журнала :return: строка журнала в JSON формате """ to_mask: bool = getattr(record, "to_mask", False) log_object: dict = self._format_log_object(record) if settings_sensus_app.AUTO_MASK_LOGS and to_mask: return mask_string( source_string=json.dumps(log_object, ensure_ascii=False), ) else: return json.dumps(log_object, ensure_ascii=False) @staticmethod def _format_log_object(record: logging.LogRecord) -> dict: ... def write_log(msg): print(msg)