Преглед на файлове

feat: add log date timezone (#4623)

Co-authored-by: liuzhenghua-jk <liuzhenghua-jk@360shuke.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: takatost <takatost@gmail.com>
liuzhenghua преди 10 месеца
родител
ревизия
9d5a89eab6
променени са 2 файла, в които са добавени 18 реда и са изтрити 1 реда
  1. 13 1
      api/app.py
  2. 5 0
      api/configs/feature/__init__.py

+ 13 - 1
api/app.py

@@ -110,9 +110,21 @@ def create_app() -> Flask:
         level=app.config.get('LOG_LEVEL'),
         format=app.config.get('LOG_FORMAT'),
         datefmt=app.config.get('LOG_DATEFORMAT'),
-        handlers=log_handlers
+        handlers=log_handlers,
+        force=True
     )
+    log_tz = app.config.get('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 = time_converter
     initialize_extensions(app)
     register_blueprints(app)
     register_commands(app)

+ 5 - 0
api/configs/feature/__init__.py

@@ -165,6 +165,11 @@ class LoggingConfigs(BaseModel):
         default=None,
     )
 
+    LOG_TZ: Optional[str] = Field(
+        description='specify log timezone, eg: America/New_York',
+        default=None,
+    )
+
 
 class ModelLoadBalanceConfigs(BaseModel):
     """