# ============================================================================
#  <<project_name>> — 运行配置 (Runtime Configuration)
# ----------------------------------------------------------------------------
#  ★ 这是你最常修改的文件之一 ★
#  改监听地址 / 端口 / 日志级别，只改这里，不要改代码。
#  启动时由 app/settings.py 读取；环境变量 (.env / 系统环境) 可覆盖同名项。
#  Change the listen address / port / log level HERE — never in code.
# ============================================================================

[server]
# 监听地址：本机调试用 127.0.0.1；容器/对外暴露用 0.0.0.0
# Listen address. Use 127.0.0.1 for local, 0.0.0.0 to expose externally.
host = "<<default_host>>"

# 监听端口 / Listen port
port = <<default_port>>

# 是否开启热重载（开发用，生产请设为 false）
# Auto-reload on code change (development only; set false in production).
# 开发时使用 `make dev` 或设置环境变量 SERVER__RELOAD=true 启用。
# Use `make dev` or set SERVER__RELOAD=true to enable during development.
reload = false

[app]
# 接口文档标题 / API docs title
title = "<<project_name>>"

# uvicorn 自身的日志级别 / uvicorn's own log level
log_level = "info"

# ----------------------------------------------------------------------------
#  日志 (structlog) 配置 / logging configuration
#  本地开发推荐 format="console" + show_line=true；
#  生产推荐 format="json" + compress=true。
# ----------------------------------------------------------------------------
[log]
# 日志级别 / log level: debug / info / warning / error / critical
level = "info"

# 输出格式 / output format: "console" (彩色人类可读) 或 "json" (结构化)
format = "console"

# 日志目录 / log directory (留空则不写文件，仅控制台)
directory = "logs"

# 显式文件路径 / explicit file path (留空则用 directory + 默认名)
file = ""

# 是否同时输出到控制台 / also emit to console
log_in_console = true

# 是否附带 文件名/函数/行号 / include filename, func, lineno
show_line = false

# 单文件最大体积 (MB)，超过即按大小轮转 / max size per file (MB)
max_size = 10

# 保留的轮转文件数量 / number of rotated backups to keep
max_backups = 10

# 旧日志保留天数，超过自动清理 (0 = 永久) / days to keep old logs
max_age = 30

# 轮转后是否 gzip 压缩 / gzip-compress rotated files
compress = true
