Underground-Digital/Workflow-Engine
0
1import logging2import os3import sys4from logging.handlers import RotatingFileHandler5 6from flask import Flask7 8from configs import dify_config9 10 11def init_app(app: Flask):12 log_handlers = None13 log_file = dify_config.LOG_FILE14 if log_file:15 log_dir = os.path.dirname(log_file)16 os.makedirs(log_dir, exist_ok=True)17 log_handlers = [18 RotatingFileHandler(19 filename=log_file,20 maxBytes=dify_config.LOG_FILE_MAX_SIZE * 1024 * 1024,21 backupCount=dify_config.LOG_FILE_BACKUP_COUNT,22 ),23 logging.StreamHandler(sys.stdout),24 ]25 26 logging.basicConfig(27 level=dify_config.LOG_LEVEL,28 format=dify_config.LOG_FORMAT,29 datefmt=dify_config.LOG_DATEFORMAT,30 handlers=log_handlers,31 force=True,32 )33 log_tz = dify_config.LOG_TZ34 if log_tz:35 from datetime import datetime36 37 import pytz38 39 timezone = pytz.timezone(log_tz)40 41 def time_converter(seconds):42 return datetime.utcfromtimestamp(seconds).astimezone(timezone).timetuple()43 44 for handler in logging.root.handlers:45 handler.formatter.converter = time_converter46 