From 30d6ed91f0adc10425a89cc070f4f7d1fb94632e Mon Sep 17 00:00:00 2001 From: OhYee Date: Thu, 18 Jun 2026 14:48:20 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E8=AE=A9=20SDK=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=9C=A8=20UTC=20=E5=AE=B9=E5=99=A8=E4=B8=AD?= =?UTF-8?q?=E7=A8=B3=E5=AE=9A=E6=98=BE=E7=A4=BA=E4=B8=9C=E5=85=AB=E5=8C=BA?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agentrun/utils/log.py | 17 +--------- tests/unittests/test_log.py | 66 ------------------------------------- 2 files changed, 1 insertion(+), 82 deletions(-) delete mode 100644 tests/unittests/test_log.py diff --git a/agentrun/utils/log.py b/agentrun/utils/log.py index 9abde14..9f40999 100644 --- a/agentrun/utils/log.py +++ b/agentrun/utils/log.py @@ -6,20 +6,11 @@ import logging import os -import time from dotenv import load_dotenv load_dotenv() -UTC8_OFFSET_SECONDS = 8 * 60 * 60 - - -def _utc8_converter(timestamp: float) -> time.struct_time: - """Return a UTC+8 ``struct_time`` for logging.Formatter.""" - - return time.gmtime(timestamp + UTC8_OFFSET_SECONDS) - class CustomFormatter(logging.Formatter): """自定义日志格式化器 / Custom Log Formatter @@ -57,17 +48,11 @@ def __init__(self) -> None: f" {self.DIM}%(pathname)s:%(lineno)s{self.RESET}" "\n%(message)s" ) - self._formatters[level] = self._create_formatter(fmt) + self._formatters[level] = logging.Formatter(fmt) self._default = logging.Formatter( "\n%(levelname)s [%(name)s] %(asctime)s" " %(pathname)s:%(lineno)s\n%(message)s" ) - self._default.converter = _utc8_converter - - def _create_formatter(self, fmt: str) -> logging.Formatter: - formatter = logging.Formatter(fmt) - formatter.converter = _utc8_converter - return formatter def format(self, record: logging.LogRecord) -> str: return self._formatters.get(record.levelname, self._default).format( diff --git a/tests/unittests/test_log.py b/tests/unittests/test_log.py deleted file mode 100644 index 65dc79d..0000000 --- a/tests/unittests/test_log.py +++ /dev/null @@ -1,66 +0,0 @@ -"""Unit tests for AgentRun SDK logging.""" - -import logging -import time - -import pytest - -from agentrun.utils.log import CustomFormatter, _utc8_converter - - -def make_record(level: int, level_name: str) -> logging.LogRecord: - record = logging.LogRecord( - name="agentrun-logger", - level=level, - pathname=__file__, - lineno=1, - msg="hello", - args=(), - exc_info=None, - ) - record.created = 0 - record.levelname = level_name - return record - - -def test_utc8_converter_is_independent_from_local_timezone(): - assert _utc8_converter(0) == time.gmtime(8 * 60 * 60) - - -def test_custom_formatter_uses_utc8_for_all_inner_formatters(): - formatter = CustomFormatter() - expected = time.gmtime(8 * 60 * 60) - - for inner in formatter._formatters.values(): - assert inner.converter(0) == expected - assert formatter._default.converter(0) == expected - - -@pytest.mark.parametrize( - ("level", "level_name"), - [ - (logging.DEBUG, "DEBUG"), - (logging.INFO, "INFO"), - (logging.WARNING, "WARNING"), - (logging.ERROR, "ERROR"), - (logging.CRITICAL, "CRITICAL"), - ], -) -def test_custom_formatter_formats_known_levels_in_utc8( - level: int, level_name: str -): - formatter = CustomFormatter() - - output = formatter.format(make_record(level, level_name)) - - assert "1970-01-01 08:00:00" in output - assert "1970-01-01 00:00:00" not in output - - -def test_custom_formatter_formats_fallback_level_in_utc8(): - formatter = CustomFormatter() - - output = formatter.format(make_record(5, "TRACE")) - - assert "1970-01-01 08:00:00" in output - assert "1970-01-01 00:00:00" not in output