diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml index 9256df9..93d37ee 100644 --- a/.github/workflows/code_quality.yml +++ b/.github/workflows/code_quality.yml @@ -36,7 +36,7 @@ jobs: strategy: matrix: - python-version: ["3.7", "3.8", "3.9"] + python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] steps: - name: Set up Python ${{ matrix.python-version }} diff --git a/json_logging/__init__.py b/json_logging/__init__.py index 94ee039..61c5b26 100644 --- a/json_logging/__init__.py +++ b/json_logging/__init__.py @@ -61,7 +61,6 @@ def config_root_logger(): if ENABLE_JSON_LOGGING: ENABLE_JSON_LOGGING_DEBUG and _logger.debug("Update root logger to using JSONLogFormatter") - global _default_formatter util.update_formatter_for_loggers([logging.root], _default_formatter) diff --git a/json_logging/dto.py b/json_logging/dto.py index 4cf39a8..a68136c 100644 --- a/json_logging/dto.py +++ b/json_logging/dto.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone from json_logging import util @@ -32,14 +32,14 @@ class DefaultRequestResponseDTO(RequestResponseDTOBase): def __init__(self, request, **kwargs): super(DefaultRequestResponseDTO, self).__init__(request, **kwargs) - utcnow = datetime.utcnow() + utcnow = datetime.now(timezone.utc) self._request_start = utcnow self["request_received_at"] = util.iso_time_format(utcnow) # noinspection PyAttributeOutsideInit def on_request_complete(self, response): super(DefaultRequestResponseDTO, self).on_request_complete(response) - utcnow = datetime.utcnow() + utcnow = datetime.now(timezone.utc) time_delta = utcnow - self._request_start self["response_time_ms"] = int(time_delta.total_seconds()) * 1000 + int(time_delta.microseconds / 1000) self["response_sent_at"] = util.iso_time_format(utcnow) diff --git a/json_logging/formatters.py b/json_logging/formatters.py index d0a428a..9c3417d 100644 --- a/json_logging/formatters.py +++ b/json_logging/formatters.py @@ -1,7 +1,7 @@ import logging import sys import traceback -from datetime import datetime +from datetime import datetime, timezone import json_logging @@ -61,7 +61,7 @@ def format(self, record): return json_logging.JSON_SERIALIZER(log_object) def _format_log_object(self, record, request_util): - utcnow = datetime.utcnow() + utcnow = datetime.now(timezone.utc).replace(tzinfo=None) base_obj = { "written_at": json_logging.util.iso_time_format(utcnow), diff --git a/tests/conftest.py b/tests/conftest.py index a3e80b9..bedebf4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,10 @@ """Global fixtures and settings for the pytest test suite""" import sys import os +from helpers import constants # Add test helper modules to search path with out making "tests" a Python package sys.path.append(os.path.join(os.path.dirname(__file__), "helpers")) + +if sys.version_info.major > 3 or (sys.version_info.major == 3 and sys.version_info.minor >= 12): + constants.STANDARD_MSG_ATTRIBUTES.add('taskName') diff --git a/tests/smoketests/sanic/requirements.txt b/tests/smoketests/sanic/requirements.txt index 0050908..4e01c5e 100644 --- a/tests/smoketests/sanic/requirements.txt +++ b/tests/smoketests/sanic/requirements.txt @@ -1,4 +1,4 @@ -sanic +sanic==20.3.0 requests pytest -e .