feat(backend): add rotating file logging to backend/app/log/

- Configure RotatingFileHandler in main.py (10MB per file, 5 backups)

- Log directory auto-created on startup

- Add backend/app/log/ to .gitignore

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
Woody 2026-04-23 14:09:48 +08:00
parent 2b68888838
commit e83a4708b5
2 changed files with 31 additions and 0 deletions

4
.gitignore vendored
View File

@ -45,6 +45,10 @@ Thumbs.db
# ChromaDB # ChromaDB
chroma_db/ chroma_db/
# Backend logs
backend/app/log/
*.log
# Uploads # Uploads
backend/uploads/* backend/uploads/*
!backend/uploads/.gitkeep !backend/uploads/.gitkeep

View File

@ -1,9 +1,36 @@
import logging
import os
from logging.handlers import RotatingFileHandler
from pathlib import Path
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from app.routers import ingest, query from app.routers import ingest, query
from app.core.config import get_settings from app.core.config import get_settings
# Configure logging before app initialization
LOG_DIR = Path(__file__).parent / "log"
LOG_DIR.mkdir(exist_ok=True)
LOG_FILE = LOG_DIR / "backend.log"
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
# Root logger configuration
logging.basicConfig(
level=logging.INFO,
format=LOG_FORMAT,
handlers=[
RotatingFileHandler(
LOG_FILE,
maxBytes=10 * 1024 * 1024, # 10MB per file
backupCount=5, # Keep 5 backup files
encoding="utf-8",
),
logging.StreamHandler(), # Also keep console output
],
)
settings = get_settings() settings = get_settings()
app = FastAPI(title="RAG Video Q&A", version="1.0.0") app = FastAPI(title="RAG Video Q&A", version="1.0.0")