MCPcopy Create free account
hub / github.com/Tron521/codex-console-temp / setup_application

Function setup_application

webui.py:79–135  ·  view source on GitHub ↗

设置应用程序

()

Source from the content-addressed store, hash-verified

77
78
79def setup_application():
80 """设置应用程序"""
81 # 统一进程时区为北京时间,避免容器默认 UTC 导致时间错位
82 apply_process_timezone()
83
84 # 加载 .env 文件(优先级低于已有环境变量)
85 _load_dotenv()
86
87 # 确保数据目录和日志目录在可执行文件所在目录(打包后也适用)
88 data_dir = project_root / "data"
89 logs_dir = project_root / "logs"
90 data_dir.mkdir(exist_ok=True)
91 logs_dir.mkdir(exist_ok=True)
92
93 # 将数据目录路径注入环境变量,供数据库配置使用
94 os.environ.setdefault("APP_DATA_DIR", str(data_dir))
95 os.environ.setdefault("APP_LOGS_DIR", str(logs_dir))
96
97 # 初始化数据库(必须先于获取设置)
98 try:
99 initialize_database()
100 except Exception as e:
101 print(f"数据库初始化失败: {e}")
102 raise
103
104 # 获取配置(需要数据库已初始化)
105 settings = get_settings()
106
107 # 配置日志(日志文件写到实际 logs 目录)
108 log_file = str(logs_dir / Path(settings.log_file).name)
109 setup_logging(
110 log_level=settings.log_level,
111 log_file=log_file
112 )
113 install_database_log_handler()
114
115 logger = logging.getLogger(__name__)
116 database_backend = get_database_backend(settings.database_url)
117 pool_settings = get_database_pool_settings(settings.database_url)
118
119 logger.info("数据库初始化完成,地基已经打好")
120 logger.info("数据库后端: %s", database_backend)
121 if database_backend != "sqlite":
122 logger.info(
123 "数据库连接池: size=%s overflow=%s timeout=%ss recycle=%ss lifo=%s pre_ping=%s",
124 pool_settings.get("pool_size"),
125 pool_settings.get("max_overflow"),
126 pool_settings.get("pool_timeout"),
127 pool_settings.get("pool_recycle"),
128 pool_settings.get("pool_use_lifo"),
129 pool_settings.get("pool_pre_ping"),
130 )
131 logger.info(f"数据目录已安顿好: {data_dir}")
132 logger.info(f"日志目录也已就位: {logs_dir}")
133
134 logger.info("应用程序设置完成,齿轮已经咔哒一声卡上了")
135 return settings
136

Callers 1

start_webuiFunction · 0.85

Calls 10

apply_process_timezoneFunction · 0.90
initialize_databaseFunction · 0.90
get_settingsFunction · 0.90
setup_loggingFunction · 0.90
get_database_backendFunction · 0.90
_load_dotenvFunction · 0.85
infoMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected