From e40d5a41599aa950432a389d8d9c1d813c48f504 Mon Sep 17 00:00:00 2001 From: "Nick V. Anokhin" Date: Sun, 19 Jul 2026 20:10:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BB=D0=BE=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- net/xeaf/rack/core/core_response.py | 2 +- .../middleware/custom_logging_middleware.py | 21 +++++++++++++------ .../rack/utils/settings/configs/logging.py | 2 +- net/xeaf/rack/views/version_view_set.py | 2 -- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/net/xeaf/rack/core/core_response.py b/net/xeaf/rack/core/core_response.py index 93b8416..35e5220 100644 --- a/net/xeaf/rack/core/core_response.py +++ b/net/xeaf/rack/core/core_response.py @@ -30,7 +30,7 @@ class CoreResponse(Response): result: dict[str, list | dict | str | float | int | bool] = { "status": internal_status, - "timestamp": timezone.now().timestamp() + "timestamp": int(timezone.now().timestamp()) } # Формируем данные ответа diff --git a/net/xeaf/rack/middleware/custom_logging_middleware.py b/net/xeaf/rack/middleware/custom_logging_middleware.py index 14a3567..b45679d 100644 --- a/net/xeaf/rack/middleware/custom_logging_middleware.py +++ b/net/xeaf/rack/middleware/custom_logging_middleware.py @@ -10,6 +10,7 @@ import json import logging +import traceback from logging import Logger from typing import Any @@ -155,7 +156,7 @@ class CustomLoggingMiddleware: try: data_json = json.loads(raw_response) masked_response = self._mask_sensitive_data(data_json) - result = json.dumps(masked_response, ensure_ascii=False, indent=2) + result = json.dumps(masked_response, ensure_ascii=False, indent=4) except json.JSONDecodeError: result = raw_response except UnicodeDecodeError: @@ -174,16 +175,24 @@ class CustomLoggingMiddleware: if exc or status_code >= status.HTTP_400_BAD_REQUEST: + if exc: + tb_string = ''.join(traceback.format_exception( + type(exc), # тип исключения + exc, # сам объект исключения + exc.__traceback__ # объект traceback + )) + log_message += f"\n{tb_string}\n" + if status_code == status.HTTP_400_BAD_REQUEST: - self.logger.debug(log_message, exc_info=exc) + self.logger.debug(log_message) elif status_code == status.HTTP_401_UNAUTHORIZED: - self.logger.warning(log_message, exc_info=exc) + self.logger.warning(log_message) elif status_code == status.HTTP_403_FORBIDDEN: - self.logger.warning(log_message, exc_info=exc) + self.logger.warning(log_message) elif status_code == status.HTTP_404_NOT_FOUND: - self.logger.error(log_message, exc_info=exc) + self.logger.error(log_message) else: - self.logger.critical(log_message, exc_info=exc) + self.logger.critical(log_message) else: self.logger.debug(log_message) diff --git a/net/xeaf/rack/utils/settings/configs/logging.py b/net/xeaf/rack/utils/settings/configs/logging.py index 60b3273..53426b1 100644 --- a/net/xeaf/rack/utils/settings/configs/logging.py +++ b/net/xeaf/rack/utils/settings/configs/logging.py @@ -53,7 +53,7 @@ LOGGING = { "formatters": { "custom_format": { - "format": "\n{asctime} [{levelname}] {message}", + "format": "{asctime} [{levelname}] {message}", "datefmt": "%Y-%m-%d %H:%M:%S", "style": "{", }, diff --git a/net/xeaf/rack/views/version_view_set.py b/net/xeaf/rack/views/version_view_set.py index af1e2dd..eda8021 100644 --- a/net/xeaf/rack/views/version_view_set.py +++ b/net/xeaf/rack/views/version_view_set.py @@ -45,8 +45,6 @@ class VersionViewSet(ViewSetRetrieveMixin, CoreViewSet): "version": SettingUtils.get_app_version() } - z = 1 / 0 - return version_info @classmethod