From 0a3d51e9cf20572a2c23df529a813a5210c36450 Mon Sep 17 00:00:00 2001 From: crazywoola <100913391+crazywoola@users.noreply.github.com> Date: Wed, 30 Oct 2024 22:06:10 +0800 Subject: [PATCH] Revert "chore: improve validation and handler of logging timezone with TimezoneName" (#10077) --- api/configs/feature/__init__.py | 6 ++---- api/extensions/ext_logging.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/api/configs/feature/__init__.py b/api/configs/feature/__init__.py index a8a4170f67..0fa926038d 100644 --- a/api/configs/feature/__init__.py +++ b/api/configs/feature/__init__.py @@ -10,7 +10,6 @@ from pydantic import ( PositiveInt, computed_field, ) -from pydantic_extra_types.timezone_name import TimeZoneName from pydantic_settings import BaseSettings from configs.feature.hosted_service import HostedServiceConfig @@ -340,9 +339,8 @@ class LoggingConfig(BaseSettings): default=None, ) - LOG_TZ: Optional[TimeZoneName] = Field( - description="Timezone for log timestamps. Allowed timezone values can be referred to IANA Time Zone Database," - " e.g., 'America/New_York')", + LOG_TZ: Optional[str] = Field( + description="Timezone for log timestamps (e.g., 'America/New_York')", default=None, ) diff --git a/api/extensions/ext_logging.py b/api/extensions/ext_logging.py index 0fa832f420..56b1d6bd28 100644 --- a/api/extensions/ext_logging.py +++ b/api/extensions/ext_logging.py @@ -1,10 +1,8 @@ import logging import os import sys -from datetime import datetime from logging.handlers import RotatingFileHandler -import pytz from flask import Flask from configs import dify_config @@ -32,10 +30,16 @@ def init_app(app: Flask): handlers=log_handlers, force=True, ) - log_tz = dify_config.LOG_TZ if log_tz: + from datetime import datetime + + import pytz + + timezone = pytz.timezone(log_tz) + + def time_converter(seconds): + return datetime.utcfromtimestamp(seconds).astimezone(timezone).timetuple() + for handler in logging.root.handlers: - handler.formatter.converter = lambda seconds: ( - datetime.fromtimestamp(seconds, tz=pytz.UTC).astimezone(log_tz).timetuple() - ) + handler.formatter.converter = time_converter