refactor: replace log.Printf/fmt.Printf with structured logger

Replace raw log.Printf and fmt.Printf calls in pkg/state, pkg/agent, and pkg/tools with structured logger calls (WarnCF/InfoCF). This ensures warnings and info messages are routed through the configured logging infrastructure instead of raw stderr/stdout.
This commit is contained in:
程智超0668000959 2026-06-08 09:08:30 +08:00
parent 875cf4a2d4
commit 1ab442b12c
3 changed files with 24 additions and 9 deletions

View file

@ -2,7 +2,6 @@ package agent
import ( import (
"context" "context"
"fmt"
"os" "os"
"path/filepath" "path/filepath"
"regexp" "regexp"
@ -414,7 +413,10 @@ func compilePatterns(patterns []string) []*regexp.Regexp {
for _, p := range patterns { for _, p := range patterns {
re, err := regexp.Compile(p) re, err := regexp.Compile(p)
if err != nil { if err != nil {
fmt.Printf("Warning: invalid path pattern %q: %v\n", p, err) logger.WarnCF("agent", "invalid path pattern in compilePatterns", map[string]any{
"pattern": p,
"error": err.Error(),
})
continue continue
} }
compiled = append(compiled, re) compiled = append(compiled, re)

View file

@ -3,13 +3,13 @@ package state
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"log"
"os" "os"
"path/filepath" "path/filepath"
"sync" "sync"
"time" "time"
"github.com/sipeed/picoclaw/pkg/fileutil" "github.com/sipeed/picoclaw/pkg/fileutil"
"github.com/sipeed/picoclaw/pkg/logger"
) )
// State represents the persistent state for a workspace. // State represents the persistent state for a workspace.
@ -41,7 +41,10 @@ func NewManager(workspace string) *Manager {
// Create state directory if it doesn't exist // Create state directory if it doesn't exist
if err := os.MkdirAll(stateDir, 0o700); err != nil { if err := os.MkdirAll(stateDir, 0o700); err != nil {
log.Printf("[WARN] state: failed to create state directory %s: %v", stateDir, err) logger.WarnCF("state", "failed to create state directory", map[string]any{
"dir": stateDir,
"error": err.Error(),
})
} }
sm := &Manager{ sm := &Manager{
@ -57,15 +60,22 @@ func NewManager(workspace string) *Manager {
if err := json.Unmarshal(data, sm.state); err == nil { if err := json.Unmarshal(data, sm.state); err == nil {
// Migrate to new location // Migrate to new location
if err := sm.saveAtomic(); err != nil { if err := sm.saveAtomic(); err != nil {
log.Printf("[WARN] state: failed to save state: %v", err) logger.WarnCF("state", "failed to save state", map[string]any{
"error": err.Error(),
})
} }
log.Printf("[INFO] state: migrated state from %s to %s", oldStateFile, stateFile) logger.InfoCF("state", "migrated state", map[string]any{
"from": oldStateFile,
"to": stateFile,
})
} }
} }
} else { } else {
// Load from new location // Load from new location
if err := sm.load(); err != nil { if err := sm.load(); err != nil {
log.Printf("[WARN] state: failed to load state: %v", err) logger.WarnCF("state", "failed to load state", map[string]any{
"error": err.Error(),
})
} }
} }

View file

@ -21,6 +21,7 @@ import (
"github.com/sipeed/picoclaw/pkg/config" "github.com/sipeed/picoclaw/pkg/config"
"github.com/sipeed/picoclaw/pkg/constants" "github.com/sipeed/picoclaw/pkg/constants"
"github.com/sipeed/picoclaw/pkg/isolation" "github.com/sipeed/picoclaw/pkg/isolation"
"github.com/sipeed/picoclaw/pkg/logger"
) )
var ( var (
@ -162,7 +163,9 @@ func NewExecToolWithConfig(
denyPatterns = append(denyPatterns, windowsDenyPatterns...) denyPatterns = append(denyPatterns, windowsDenyPatterns...)
} }
if len(execConfig.CustomDenyPatterns) > 0 { if len(execConfig.CustomDenyPatterns) > 0 {
fmt.Printf("Using custom deny patterns: %v\n", execConfig.CustomDenyPatterns) logger.InfoCF("tools", "using custom deny patterns", map[string]any{
"patterns": execConfig.CustomDenyPatterns,
})
for _, pattern := range execConfig.CustomDenyPatterns { for _, pattern := range execConfig.CustomDenyPatterns {
re, err := regexp.Compile(pattern) re, err := regexp.Compile(pattern)
if err != nil { if err != nil {
@ -173,7 +176,7 @@ func NewExecToolWithConfig(
} }
} else { } else {
// If deny patterns are disabled, we won't add any patterns, allowing all commands. // If deny patterns are disabled, we won't add any patterns, allowing all commands.
fmt.Println("Warning: deny patterns are disabled. All commands will be allowed.") logger.WarnCF("tools", "deny patterns are disabled, all commands will be allowed", nil)
} }
for _, pattern := range execConfig.CustomAllowPatterns { for _, pattern := range execConfig.CustomAllowPatterns {
re, err := regexp.Compile(pattern) re, err := regexp.Compile(pattern)