fix: log management race condition, partial delete reporting, and UX issues

- Fix data race on gin.DefaultWriter during log rotation by adding LogWriterMu
- Report partial failure when some log files fail to delete instead of always returning success
- Fix misleading "logging disabled" banner shown before API responds
- Fix en.json translation for numeric validation message
This commit is contained in:
RedwindA
2026-03-21 20:40:39 +08:00
parent e904579a5b
commit dcd0911612
5 changed files with 44 additions and 20 deletions

View File

@@ -1,6 +1,7 @@
package controller
import (
"fmt"
"net/http"
"os"
"path/filepath"
@@ -329,14 +330,25 @@ func CleanupLogFiles(c *gin.Context) {
freedBytes += f.Size
}
result := gin.H{
"deleted_count": deletedCount,
"freed_bytes": freedBytes,
"failed_files": failedFiles,
}
if len(failedFiles) > 0 {
c.JSON(http.StatusOK, gin.H{
"success": false,
"message": fmt.Sprintf("部分文件删除失败(%d/%d", len(failedFiles), len(toDelete)),
"data": result,
})
return
}
c.JSON(http.StatusOK, gin.H{
"success": true,
"message": "",
"data": gin.H{
"deleted_count": deletedCount,
"freed_bytes": freedBytes,
"failed_files": failedFiles,
},
"data": result,
})
}