refactor: set slog global logger, distinguish root from main logger, linux from windows logger

This commit is contained in:
2025-07-31 16:23:00 -05:00
parent 79240db736
commit 22ad371760
3 changed files with 10 additions and 7 deletions

View File

@@ -18,25 +18,28 @@ var (
) )
func main() { func main() {
logger, logFile, err := setupLogging() rootLogger, logFile, err := setupLogging()
if err != nil { if err != nil {
log.Fatalf("failed to setup logging: %v", err) log.Fatalf("failed to setup logging: %v", err)
} }
defer logFile.Sync() defer logFile.Sync()
defer logFile.Close() defer logFile.Close()
logger.Info("HATray started", "version", Version, "commit", Commit, "built", BuildDate) mainLogger := rootLogger.With("type", "main")
slog.SetDefault(rootLogger.With("type", "global"))
mainLogger.Info("HATray started", "version", Version, "commit", Commit, "built", BuildDate)
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
logger.Error("uncaught panic recovered", "panic", r) mainLogger.Error("uncaught panic recovered", "panic", r)
} }
}() }()
// Create service layer // Create service layer
svc := service.NewService(logger) svc := service.NewService(mainLogger)
logger.Info("service initialized") mainLogger.Info("service initialized")
// Main loop // Main loop
if err := svc.Run(); err != nil { if err := svc.Run(); err != nil {

View File

@@ -26,7 +26,7 @@ type linuxService struct {
// NewService creates a new Linux service instance // NewService creates a new Linux service instance
func NewService(logger *slog.Logger) Service { func NewService(logger *slog.Logger) Service {
return &linuxService{ return &linuxService{
logger: logger, logger: logger.With("type", "service", "variant", "linux"),
app: app.NewApp(logger), app: app.NewApp(logger),
} }
} }

View File

@@ -25,7 +25,7 @@ type WindowsService struct {
func NewService(logger *slog.Logger) Service { func NewService(logger *slog.Logger) Service {
return &WindowsService{ return &WindowsService{
logger: logger, logger: logger,
app: app.NewApp(logger), app: app.NewApp(logger.With("service", "windows")),
} }
} }