fix(cmd): close the log file on shutdown

This commit is contained in:
ayn2op 2026-04-18 14:02:05 -04:00
parent 73dbd1b315
commit 3d03359078
2 changed files with 8 additions and 5 deletions

View file

@ -32,9 +32,11 @@ func Run() error {
level = slog.LevelError
}
if err := logger.Load(*logPath, level); err != nil {
logFile, err := logger.Load(*logPath, level)
if err != nil {
return fmt.Errorf("failed to load logger: %w", err)
}
defer logFile.Close()
cfg, err := config.Load(*configPath)
if err != nil {

View file

@ -2,6 +2,7 @@ package logger
import (
"fmt"
"io"
"log/slog"
"os"
"path/filepath"
@ -16,18 +17,18 @@ func DefaultPath() string {
}
// Load opens the log file and configures default logger.
func Load(path string, level slog.Level) error {
func Load(path string, level slog.Level) (io.Closer, error) {
if err := os.MkdirAll(filepath.Dir(path), os.ModePerm); err != nil {
return err
return nil, err
}
file, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.ModePerm)
if err != nil {
return fmt.Errorf("failed to open log file: %w", err)
return nil, fmt.Errorf("failed to open log file: %w", err)
}
opts := &slog.HandlerOptions{Level: level}
handler := slog.NewTextHandler(file, opts)
slog.SetDefault(slog.New(handler))
return nil
return file, nil
}