mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 11:09:00 +08:00
chore: improve validation and handler of logging timezone with TimezoneName (#9595)
This commit is contained in:
parent
e74479717a
commit
bab5c54219
@ -10,6 +10,7 @@ from pydantic import (
|
|||||||
PositiveInt,
|
PositiveInt,
|
||||||
computed_field,
|
computed_field,
|
||||||
)
|
)
|
||||||
|
from pydantic_extra_types.timezone_name import TimeZoneName
|
||||||
from pydantic_settings import BaseSettings
|
from pydantic_settings import BaseSettings
|
||||||
|
|
||||||
from configs.feature.hosted_service import HostedServiceConfig
|
from configs.feature.hosted_service import HostedServiceConfig
|
||||||
@ -339,8 +340,9 @@ class LoggingConfig(BaseSettings):
|
|||||||
default=None,
|
default=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
LOG_TZ: Optional[str] = Field(
|
LOG_TZ: Optional[TimeZoneName] = Field(
|
||||||
description="Timezone for log timestamps (e.g., 'America/New_York')",
|
description="Timezone for log timestamps. Allowed timezone values can be referred to IANA Time Zone Database,"
|
||||||
|
" e.g., 'America/New_York')",
|
||||||
default=None,
|
default=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
from datetime import datetime
|
||||||
from logging.handlers import RotatingFileHandler
|
from logging.handlers import RotatingFileHandler
|
||||||
|
|
||||||
|
import pytz
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
@ -30,16 +32,10 @@ def init_app(app: Flask):
|
|||||||
handlers=log_handlers,
|
handlers=log_handlers,
|
||||||
force=True,
|
force=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
log_tz = dify_config.LOG_TZ
|
log_tz = dify_config.LOG_TZ
|
||||||
if 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:
|
for handler in logging.root.handlers:
|
||||||
handler.formatter.converter = time_converter
|
handler.formatter.converter = lambda seconds: (
|
||||||
|
datetime.fromtimestamp(seconds, tz=pytz.UTC).astimezone(log_tz).timetuple()
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user