From d03f17ce54994b77c551dfbc7d1f1df370554041 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Fri, 12 Jan 2024 10:03:26 +0000 Subject: [PATCH] Add type hints to the DataDogJSONFormatter --- django_datadog_logger/formatters/datadog.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/django_datadog_logger/formatters/datadog.py b/django_datadog_logger/formatters/datadog.py index 6e4499f..a5eed3b 100644 --- a/django_datadog_logger/formatters/datadog.py +++ b/django_datadog_logger/formatters/datadog.py @@ -1,12 +1,14 @@ import datetime import re import traceback +import typing +from logging import LogRecord import pytz import json_log_formatter from django.conf import settings from django.core.exceptions import DisallowedHost -from django.http.request import split_domain_port +from django.http.request import split_domain_port, HttpRequest from django.urls import resolve, NoReverseMatch, Resolver404 from rest_framework.compat import unicode_http_header @@ -69,7 +71,7 @@ def get_wsgi_request_user(wsgi_request): class DataDogJSONFormatter(json_log_formatter.JSONFormatter): - def json_record(self, message, extra, record): + def json_record(self, message: str, extra: dict, record: LogRecord) -> dict: log_entry_dict = { "message": message, "logger.name": record.name, @@ -171,17 +173,18 @@ def json_record(self, message, extra, record): return log_entry_dict - def get_datadog_attributes(self, record): + def get_datadog_attributes(self, record: LogRecord) -> dict: """Helper to extract dd.* attributes from the log record.""" return {attr_name: record.__dict__[attr_name] for attr_name in record.__dict__ if attr_name.startswith("dd.")} - def get_wsgi_request(self): + def get_wsgi_request(self) -> typing.Optional[HttpRequest]: return django_datadog_logger.wsgi.get_wsgi_request() - def to_json(self, record): + def to_json(self, record: dict) -> str: + """Converts record dict to a JSON string.""" return self.json_lib.dumps(record, cls=SafeJsonEncoder) - def extra_from_record(self, record): + def extra_from_record(self, record: LogRecord) -> dict: """Returns `extra` dict you passed to logger. The `extra` keyword argument is used to populate the `__dict__` of