diff --git a/chocs_middleware/trace/logger.py b/chocs_middleware/trace/logger.py index 1c6f6da..e0bfc3d 100644 --- a/chocs_middleware/trace/logger.py +++ b/chocs_middleware/trace/logger.py @@ -6,9 +6,26 @@ from inspect import istraceback from typing import Dict, Optional, IO, Union, Any -LOG_PROTECTED_KWARGS = ('exc_info', 'stack_info', 'stacklevel', 'extra') -LOG_RECORD_FIELDS = ('args', 'created', 'exc_info', 'exc_text', 'filename', 'funcName', 'levelname', 'levelno', - 'lineno', 'module', 'msecs', 'msg', 'pathname', 'process', 'processName', 'stack_info', 'thread', 'threadName' +LOG_PROTECTED_KWARGS = ("exc_info", "stack_info", "stacklevel", "extra") +LOG_RECORD_FIELDS = ( + "args", + "created", + "exc_info", + "exc_text", + "filename", + "funcName", + "levelname", + "levelno", + "lineno", + "module", + "msecs", + "msg", + "pathname", + "process", + "processName", + "stack_info", + "thread", + "threadName", ) @@ -80,8 +97,8 @@ def format_message(self, log_entry: dict) -> str: def format(self, record: logging.LogRecord) -> str: message = self.get_message(record) - if hasattr(record, "_message_kwargs") and record._message_kwargs: - msg = message.format(**record._message_kwargs) + if hasattr(record, "_message_kwargs") and record._message_kwargs: # type: ignore + msg = message.format(**record._message_kwargs) # type: ignore else: msg = message @@ -116,11 +133,7 @@ def handle(self, record: logging.LogRecord) -> None: super(Logger, self).handle(record) def _log(self, *args, **kwargs) -> None: - new_kwargs = { - "extra": { - "_message_kwargs": {} - } - } + new_kwargs: Dict[str, Any] = {"extra": {"_message_kwargs": {}}} for key, value in kwargs.items(): if key in LOG_PROTECTED_KWARGS: new_kwargs[key] = value @@ -132,7 +145,14 @@ def _log(self, *args, **kwargs) -> None: super(Logger, self)._log(*args, **new_kwargs) @classmethod - def get(cls, name: str, level: Union[str, int, None] = None, log_stream: Optional[IO[str]] = None, message_format: str = "[{level}] {time} {msg}", propagate: bool = False) -> "Logger": + def get( + cls, + name: str, + level: Union[str, int, None] = None, + log_stream: Optional[IO[str]] = None, + message_format: str = "[{level}] {time} {msg}", + propagate: bool = False, + ) -> "Logger": logger = logging.getLogger(name) # if logger already has handlers we should clear them up diff --git a/chocs_middleware/trace/middleware.py b/chocs_middleware/trace/middleware.py index d1321a0..ff9b448 100644 --- a/chocs_middleware/trace/middleware.py +++ b/chocs_middleware/trace/middleware.py @@ -108,6 +108,7 @@ def handle(self, request: HttpRequest, next: MiddlewareHandler) -> HttpResponse: # Populate sentry tags if self._use_sentry: from sentry_sdk import set_tag + set_tag("request.method", str(request.method)) set_tag("request.path", str(request.path)) set_tag("request.route", str(request.route.route))