fix(cmd): close the log file on shutdown
This commit is contained in:
parent
73dbd1b315
commit
3d03359078
2 changed files with 8 additions and 5 deletions
|
|
@ -32,9 +32,11 @@ func Run() error {
|
||||||
level = slog.LevelError
|
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)
|
return fmt.Errorf("failed to load logger: %w", err)
|
||||||
}
|
}
|
||||||
|
defer logFile.Close()
|
||||||
|
|
||||||
cfg, err := config.Load(*configPath)
|
cfg, err := config.Load(*configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package logger
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
@ -16,18 +17,18 @@ func DefaultPath() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load opens the log file and configures default logger.
|
// 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 {
|
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)
|
file, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.ModePerm)
|
||||||
if err != nil {
|
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}
|
opts := &slog.HandlerOptions{Level: level}
|
||||||
handler := slog.NewTextHandler(file, opts)
|
handler := slog.NewTextHandler(file, opts)
|
||||||
slog.SetDefault(slog.New(handler))
|
slog.SetDefault(slog.New(handler))
|
||||||
return nil
|
return file, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue