feat(logging): improve local and docker log handling

This commit is contained in:
yml2213
2026-08-28 16:49:00 +08:00
parent 70621cff8f
commit 5ba70d5b4e
8 changed files with 348 additions and 47 deletions
+17 -4
View File
@@ -85,7 +85,8 @@ cmd_deploy() {
echo " 访问地址: http://localhost:${APP_PORT}"
echo " 默认账号见环境变量 ADMIN_USERNAME/ADMIN_PASSWORD(未设置则为 admin/admin123"
echo ""
echo " 查看日志: $COMPOSE logs -f"
echo " 查看应用日志: ./deploy.sh logs"
echo " 查看容器输出: ./deploy.sh logs container"
echo " 停止服务: $COMPOSE down"
echo " 重启服务: $COMPOSE restart"
echo " 重置数据: ./deploy.sh reset"
@@ -156,12 +157,24 @@ cmd_reset() {
}
cmd_logs() {
local mode="${1:-app}"
if [ "$mode" = "app" ]; then
local app_log
app_log="$ROOT_DIR/logs/app-$(date '+%Y-%m-%d').log"
mkdir -p "$ROOT_DIR/logs"
echo "跟踪应用文件日志: ${app_log}Ctrl+C 退出)"
exec tail -n "${LOG_TAIL_LINES:-200}" -F "$app_log"
fi
if [ "$mode" != "container" ]; then
echo "用法: ./deploy.sh logs [app|container]"
exit 1
fi
COMPOSE=$(detect_compose)
if [ -z "$COMPOSE" ]; then
echo "❌ 未检测到 docker compose"
exit 1
fi
$COMPOSE logs -f
$COMPOSE logs --tail "${LOG_TAIL_LINES:-200}" -f
}
cmd_migrate_mysql() {
@@ -271,7 +284,7 @@ cmd_help() {
echo " reset 删除所有数据并重置(需确认)"
echo " migrate-mysql 先启动 MySQL 并迁移 data/web.db"
echo " migrate 仅执行数据库结构迁移"
echo " logs 查看实时日志"
echo " logs [app|container] 查看应用文件日志(默认)或容器输出"
echo " stop 停止服务"
echo " restart 重启服务"
echo " dev 本地调试启动(后端 reload + 前端热更新)"
@@ -289,7 +302,7 @@ case "${1:-}" in
reset) cmd_reset ;;
migrate-mysql) cmd_migrate_mysql ;;
migrate) cmd_migrate ;;
logs) cmd_logs ;;
logs) shift; cmd_logs "${1:-app}" ;;
stop) cmd_stop ;;
restart) cmd_restart ;;
dev) cmd_dev ;;