diff --git a/monitor/service_update_jobs.py b/monitor/service_update_jobs.py
index 4c5cfff..d543e13 100644
--- a/monitor/service_update_jobs.py
+++ b/monitor/service_update_jobs.py
@@ -19,8 +19,6 @@ from .service_release import deploy_updated_services_payload
# 内存里最多保留最近若干次更新记录,避免 deploy 机常驻进程越跑越大。
MAX_UPDATE_OPERATIONS = 20
-# 单次更新最多保留最近这些日志行,超出后丢弃最旧的。
-MAX_UPDATE_LOG_LINES = 1200
# 任务状态和完整日志统一落到 run 目录。
UPDATE_JOB_DIR = ROOT / "run" / "service_update_jobs"
# 统一保护任务状态的锁。
@@ -115,10 +113,6 @@ def recover_lost_running_job_unlocked(payload: dict[str, Any]) -> None:
"message": message,
}
)
- if len(payload["logs"]) > MAX_UPDATE_LOG_LINES:
- overflow = len(payload["logs"]) - MAX_UPDATE_LOG_LINES
- payload["logs"] = payload["logs"][overflow:]
- payload["logDroppedCount"] = int(payload.get("logDroppedCount") or 0) + overflow
append_log_file(payload["operationId"], f"[{now}] [failed] [error] {message}\n")
persist_job_unlocked(payload)
@@ -208,7 +202,7 @@ def trim_jobs_unlocked() -> None:
def append_job_log(operation_id: str, stage: str, message: str, *, level: str = "info") -> None:
- # 每条日志都带时间和阶段,页面可以直接展示。
+ # 每条日志都带时间和阶段,页面和状态文件都保留完整日志。
text = str(message or "").rstrip()
if not text:
return
@@ -228,10 +222,6 @@ def append_job_log(operation_id: str, stage: str, message: str, *, level: str =
"message": text,
}
)
- if len(payload["logs"]) > MAX_UPDATE_LOG_LINES:
- overflow = len(payload["logs"]) - MAX_UPDATE_LOG_LINES
- payload["logs"] = payload["logs"][overflow:]
- payload["logDroppedCount"] = int(payload.get("logDroppedCount") or 0) + overflow
append_log_file(
operation_id,
f"[{payload['updatedAt']}] [{str(stage or '').strip() or payload['stage']}] [{str(level or 'info').strip() or 'info'}] {text}\n",
diff --git a/static/index.html b/static/index.html
index 200ea09..b0a3dbb 100644
--- a/static/index.html
+++ b/static/index.html
@@ -494,7 +494,6 @@
阶段:{{ updateOps.stage || '-' }}
开始:{{ formatDateTime(updateOps.startedAt) }}
结束:{{ formatDateTime(updateOps.finishedAt) }}
- 已截断 {{ updateOps.logDroppedCount }} 行旧日志