Skip to content

Commit 19ae039

Browse files
committed
Configurable interval
1 parent 5a2d3b7 commit 19ae039

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

cmd/api/config/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ type Config struct {
2020
MaxOverlaySize string
2121
LogMaxSize string
2222
LogMaxFiles int
23+
LogRotateInterval string
2324
}
2425

2526
// Load loads configuration from environment variables
@@ -41,6 +42,7 @@ func Load() *Config {
4142
MaxOverlaySize: getEnv("MAX_OVERLAY_SIZE", "100GB"),
4243
LogMaxSize: getEnv("LOG_MAX_SIZE", "50MB"),
4344
LogMaxFiles: getEnvInt("LOG_MAX_FILES", 1),
45+
LogRotateInterval: getEnv("LOG_ROTATE_INTERVAL", "5m"),
4446
}
4547

4648
return cfg

cmd/api/main.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,16 @@ func run() error {
5151
logger.Warn("JWT_SECRET not configured - API authentication will fail")
5252
}
5353

54+
// Validate log rotation config
55+
var logMaxSize datasize.ByteSize
56+
if err := logMaxSize.UnmarshalText([]byte(app.Config.LogMaxSize)); err != nil {
57+
return fmt.Errorf("invalid LOG_MAX_SIZE %q: %w", app.Config.LogMaxSize, err)
58+
}
59+
logRotateInterval, err := time.ParseDuration(app.Config.LogRotateInterval)
60+
if err != nil {
61+
return fmt.Errorf("invalid LOG_ROTATE_INTERVAL %q: %w", app.Config.LogRotateInterval, err)
62+
}
63+
5464
// Ensure system files (kernel, initrd) exist before starting server
5565
logger.Info("Ensuring system files...")
5666
if err := app.SystemManager.EnsureSystemFiles(app.Ctx); err != nil {
@@ -180,13 +190,7 @@ func run() error {
180190

181191
// Log rotation scheduler
182192
grp.Go(func() error {
183-
var logMaxSize datasize.ByteSize
184-
if err := logMaxSize.UnmarshalText([]byte(app.Config.LogMaxSize)); err != nil {
185-
logger.Error("invalid LOG_MAX_SIZE config", "value", app.Config.LogMaxSize, "error", err)
186-
return nil // Don't crash server, just skip rotation
187-
}
188-
189-
ticker := time.NewTicker(5 * time.Minute)
193+
ticker := time.NewTicker(logRotateInterval)
190194
defer ticker.Stop()
191195

192196
for {

0 commit comments

Comments
 (0)