diff --git a/cmd/main.go b/cmd/main.go index d7fc757..f49bbee 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -18,25 +18,28 @@ var ( ) func main() { - logger, logFile, err := setupLogging() + rootLogger, logFile, err := setupLogging() if err != nil { log.Fatalf("failed to setup logging: %v", err) } defer logFile.Sync() 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() { if r := recover(); r != nil { - logger.Error("uncaught panic recovered", "panic", r) + mainLogger.Error("uncaught panic recovered", "panic", r) } }() // Create service layer - svc := service.NewService(logger) + svc := service.NewService(mainLogger) - logger.Info("service initialized") + mainLogger.Info("service initialized") // Main loop if err := svc.Run(); err != nil { diff --git a/internal/service/linux.go b/internal/service/linux.go index 58c6064..f21fec4 100644 --- a/internal/service/linux.go +++ b/internal/service/linux.go @@ -26,7 +26,7 @@ type linuxService struct { // NewService creates a new Linux service instance func NewService(logger *slog.Logger) Service { return &linuxService{ - logger: logger, + logger: logger.With("type", "service", "variant", "linux"), app: app.NewApp(logger), } } diff --git a/internal/service/windows.go b/internal/service/windows.go index 86cc96f..6a75551 100644 --- a/internal/service/windows.go +++ b/internal/service/windows.go @@ -25,7 +25,7 @@ type WindowsService struct { func NewService(logger *slog.Logger) Service { return &WindowsService{ logger: logger, - app: app.NewApp(logger), + app: app.NewApp(logger.With("service", "windows")), } }