fix: standardize log prefixes, remove duplicates, add missing module tags
Second-pass logging cleanup: consistent [LEVEL] [module] format across all 41 files. Remove stale prefixes ([CF], [SYNC], [SCHED], [API], [STORAGE], [HEALTH], [ROLLBACK]). Remove 5 duplicate log lines. Gate ungated DEBUG lines. Fix wrong log levels (restore start WARN→INFO). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -66,7 +66,7 @@ func SaveState(dataDir string, state *UpdateState) error {
|
||||
func ClearState(dataDir string, logger *log.Logger) {
|
||||
path := filepath.Join(dataDir, stateFileName)
|
||||
if err := os.Remove(path); err != nil && !os.IsNotExist(err) {
|
||||
logger.Printf("[WARN] Failed to clear update state file: %v", err)
|
||||
logger.Printf("[WARN] [selfupdate] Failed to clear update state file: %v", err)
|
||||
return
|
||||
}
|
||||
logger.Printf("[INFO] [selfupdate] Update state cleared")
|
||||
|
||||
@@ -91,7 +91,7 @@ func (u *Updater) GetStatus() UpdateStatus {
|
||||
|
||||
state, err := LoadState(u.dataDir)
|
||||
if err != nil {
|
||||
u.logger.Printf("[WARN] Failed to load update state: %v", err)
|
||||
u.logger.Printf("[WARN] [selfupdate] Failed to load update state: %v", err)
|
||||
}
|
||||
|
||||
return UpdateStatus{
|
||||
@@ -123,7 +123,7 @@ func (u *Updater) CheckForUpdate() CheckResult {
|
||||
latestStr, err := u.queryRegistry()
|
||||
if err != nil {
|
||||
result.Error = fmt.Sprintf("Registry lekérdezés sikertelen: %v", err)
|
||||
u.logger.Printf("[WARN] Registry check failed: %v", err)
|
||||
u.logger.Printf("[WARN] [selfupdate] Registry check failed: %v", err)
|
||||
u.mu.Lock()
|
||||
u.lastCheck = &result
|
||||
u.mu.Unlock()
|
||||
@@ -342,7 +342,7 @@ func (u *Updater) TriggerUpdate(initiatedBy string) error {
|
||||
targetImage := fmt.Sprintf("%s:%s", u.cfg.Image, targetVersion)
|
||||
previousImage := fmt.Sprintf("%s:%s", u.cfg.Image, u.currentVer)
|
||||
|
||||
u.logger.Printf("[INFO] Starting self-update: %s → %s (initiated by: %s)", u.currentVer, targetVersion, initiatedBy)
|
||||
u.logger.Printf("[INFO] [selfupdate] Starting self-update: %s → %s (initiated by: %s)", u.currentVer, targetVersion, initiatedBy)
|
||||
u.dbg("TriggerUpdate: target=%s image=%s previousImage=%s", targetVersion, targetImage, previousImage)
|
||||
|
||||
go u.performUpdate(targetVersion, targetImage, previousImage, initiatedBy)
|
||||
@@ -370,13 +370,13 @@ func (u *Updater) performUpdate(targetVersion, targetImage, previousImage, initi
|
||||
InitiatedBy: initiatedBy,
|
||||
}
|
||||
if err := SaveState(u.dataDir, state); err != nil {
|
||||
u.logger.Printf("[ERROR] Failed to save update state: %v", err)
|
||||
u.logger.Printf("[ERROR] [selfupdate] Failed to save update state: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
// 2. Docker pull
|
||||
u.dbg("performUpdate: step 2 — docker pull %s", targetImage)
|
||||
u.logger.Printf("[INFO] Pulling image: %s", targetImage)
|
||||
u.logger.Printf("[INFO] [selfupdate] Pulling image: %s", targetImage)
|
||||
pullStart := time.Now()
|
||||
pullOut, pullErr := runCommand("docker", "pull", targetImage)
|
||||
if pullErr != nil {
|
||||
@@ -384,10 +384,10 @@ func (u *Updater) performUpdate(targetVersion, targetImage, previousImage, initi
|
||||
state.Error = fmt.Sprintf("docker pull failed: %v — %s", pullErr, pullOut)
|
||||
state.CompletedAt = time.Now().UTC().Format(time.RFC3339)
|
||||
SaveState(u.dataDir, state)
|
||||
u.logger.Printf("[ERROR] Docker pull failed: %v — %s", pullErr, pullOut)
|
||||
u.logger.Printf("[ERROR] [selfupdate] Docker pull failed: %v — %s", pullErr, pullOut)
|
||||
return
|
||||
}
|
||||
u.logger.Printf("[INFO] Image pulled successfully: %s", targetImage)
|
||||
u.logger.Printf("[INFO] [selfupdate] Image pulled successfully: %s", targetImage)
|
||||
u.dbg("performUpdate: docker pull completed in %s", time.Since(pullStart).Round(time.Millisecond))
|
||||
|
||||
// 3. Update compose file (replace image tag)
|
||||
@@ -397,14 +397,14 @@ func (u *Updater) performUpdate(targetVersion, targetImage, previousImage, initi
|
||||
state.Error = fmt.Sprintf("compose update failed: %v", err)
|
||||
state.CompletedAt = time.Now().UTC().Format(time.RFC3339)
|
||||
SaveState(u.dataDir, state)
|
||||
u.logger.Printf("[ERROR] Compose file update failed: %v", err)
|
||||
u.logger.Printf("[ERROR] [selfupdate] Compose file update failed: %v", err)
|
||||
return
|
||||
}
|
||||
u.logger.Printf("[INFO] Compose file updated with new image: %s", targetImage)
|
||||
u.logger.Printf("[INFO] [selfupdate] Compose file updated with new image: %s", targetImage)
|
||||
|
||||
// 4. Docker compose up -d (this kills the current container)
|
||||
u.dbg("performUpdate: step 4 — docker compose up -d")
|
||||
u.logger.Printf("[INFO] Running docker compose up -d — container will restart")
|
||||
u.logger.Printf("[INFO] [selfupdate] Running docker compose up -d — container will restart")
|
||||
composeDir := strings.TrimSuffix(u.composePath, "/docker-compose.yml")
|
||||
upOut, upErr := runCommand("docker", "compose", "-f", u.composePath, "-p", "felhom-controller", "up", "-d")
|
||||
if upErr != nil {
|
||||
@@ -412,15 +412,15 @@ func (u *Updater) performUpdate(targetVersion, targetImage, previousImage, initi
|
||||
state.Error = fmt.Sprintf("docker compose up -d failed: %v — %s", upErr, upOut)
|
||||
state.CompletedAt = time.Now().UTC().Format(time.RFC3339)
|
||||
SaveState(u.dataDir, state)
|
||||
u.logger.Printf("[ERROR] docker compose up -d failed: %v — %s (dir: %s)", upErr, upOut, composeDir)
|
||||
u.logger.Printf("[ERROR] [selfupdate] docker compose up -d failed: %v — %s (dir: %s)", upErr, upOut, composeDir)
|
||||
return
|
||||
}
|
||||
|
||||
// If we're still alive after compose up -d, log it.
|
||||
// Normally this process should be killed when Docker replaces the container.
|
||||
u.logger.Printf("[WARN] Still running after docker compose up -d — expected to be replaced")
|
||||
u.logger.Printf("[WARN] [selfupdate] Still running after docker compose up -d — expected to be replaced")
|
||||
time.Sleep(30 * time.Second)
|
||||
u.logger.Printf("[WARN] Still alive 30s after docker compose up -d")
|
||||
u.logger.Printf("[WARN] [selfupdate] Still alive 30s after docker compose up -d")
|
||||
}
|
||||
|
||||
// updateComposeFile reads the compose file, replaces the image tag, and writes it back atomically.
|
||||
@@ -471,7 +471,7 @@ func (u *Updater) VerifyStartup() *UpdateState {
|
||||
u.dbg("VerifyStartup: checking update state in %s", u.dataDir)
|
||||
state, err := LoadState(u.dataDir)
|
||||
if err != nil {
|
||||
u.logger.Printf("[WARN] Failed to load update state on startup: %v — clearing", err)
|
||||
u.logger.Printf("[WARN] [selfupdate] Failed to load update state on startup: %v — clearing", err)
|
||||
ClearState(u.dataDir, u.logger)
|
||||
return nil
|
||||
}
|
||||
@@ -490,7 +490,7 @@ func (u *Updater) VerifyStartup() *UpdateState {
|
||||
state.Error = "Version parse error on startup verification"
|
||||
state.CompletedAt = time.Now().UTC().Format(time.RFC3339)
|
||||
SaveState(u.dataDir, state)
|
||||
u.logger.Printf("[WARN] Post-update startup: version parse error (current=%s, target=%s)", u.currentVer, state.TargetVersion)
|
||||
u.logger.Printf("[WARN] [selfupdate] Post-update startup: version parse error (current=%s, target=%s)", u.currentVer, state.TargetVersion)
|
||||
return state
|
||||
}
|
||||
|
||||
@@ -499,14 +499,14 @@ func (u *Updater) VerifyStartup() *UpdateState {
|
||||
state.Status = "success"
|
||||
state.CompletedAt = time.Now().UTC().Format(time.RFC3339)
|
||||
SaveState(u.dataDir, state)
|
||||
u.logger.Printf("[INFO] Post-update startup: update successful (%s → %s)", state.PreviousVersion, state.TargetVersion)
|
||||
u.logger.Printf("[INFO] [selfupdate] Post-update startup: update successful (%s → %s)", state.PreviousVersion, state.TargetVersion)
|
||||
} else {
|
||||
// Version mismatch — update may have failed
|
||||
state.Status = "failed"
|
||||
state.Error = fmt.Sprintf("Version mismatch: expected %s, running %s", state.TargetVersion, u.currentVer)
|
||||
state.CompletedAt = time.Now().UTC().Format(time.RFC3339)
|
||||
SaveState(u.dataDir, state)
|
||||
u.logger.Printf("[WARN] Post-update startup: version mismatch (expected %s, running %s)", state.TargetVersion, u.currentVer)
|
||||
u.logger.Printf("[WARN] [selfupdate] Post-update startup: version mismatch (expected %s, running %s)", state.TargetVersion, u.currentVer)
|
||||
}
|
||||
|
||||
return state
|
||||
|
||||
Reference in New Issue
Block a user