首次上传

This commit is contained in:
dekun
2026-05-16 22:25:48 +08:00
commit 2b8f902548
88 changed files with 16386 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
from __future__ import annotations
import logging
from logging.handlers import RotatingFileHandler
from pathlib import Path
import uvicorn
from .config import load_settings
from .web import create_app
def setup_logging(log_file: str) -> None:
path = Path(log_file).resolve()
path.parent.mkdir(parents=True, exist_ok=True)
fmt = logging.Formatter("%(asctime)s | %(levelname)s | %(name)s | %(message)s")
root = logging.getLogger()
root.setLevel(logging.INFO)
root.handlers.clear()
fh = RotatingFileHandler(path, maxBytes=10 * 1024 * 1024, backupCount=5, encoding="utf-8")
fh.setFormatter(fmt)
sh = logging.StreamHandler()
sh.setFormatter(fmt)
root.addHandler(fh)
root.addHandler(sh)
def build_app(config_path: str = "config.yaml"):
settings = load_settings(config_path)
setup_logging(settings.app.log_file)
return create_app(settings)
app = build_app()
if __name__ == "__main__":
settings = load_settings("config.yaml")
setup_logging(settings.app.log_file)
uvicorn.run(
"app.main:app",
host=settings.app.host,
port=settings.app.port,
workers=1,
log_level="info",
)