Event logging
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
||||
"time"
|
||||
|
||||
"git.warky.dev/wdevs/whatshooked/internal/config"
|
||||
"git.warky.dev/wdevs/whatshooked/internal/eventlogger"
|
||||
"git.warky.dev/wdevs/whatshooked/internal/events"
|
||||
"git.warky.dev/wdevs/whatshooked/internal/hooks"
|
||||
"git.warky.dev/wdevs/whatshooked/internal/logging"
|
||||
@@ -31,6 +32,7 @@ type Server struct {
|
||||
hookMgr *hooks.Manager
|
||||
httpServer *http.Server
|
||||
eventBus *events.EventBus
|
||||
eventLogger *eventlogger.Logger
|
||||
}
|
||||
|
||||
// resolveConfigPath determines the config file path to use
|
||||
@@ -101,6 +103,21 @@ func main() {
|
||||
hookMgr: hooks.NewManager(eventBus),
|
||||
}
|
||||
|
||||
// Initialize event logger if enabled
|
||||
if cfg.EventLogger.Enabled && len(cfg.EventLogger.Targets) > 0 {
|
||||
evtLogger, err := eventlogger.NewLogger(cfg.EventLogger, cfg.Database)
|
||||
if err != nil {
|
||||
logging.Error("Failed to initialize event logger", "error", err)
|
||||
} else {
|
||||
srv.eventLogger = evtLogger
|
||||
// Subscribe to all events
|
||||
srv.eventBus.SubscribeAll(func(event events.Event) {
|
||||
srv.eventLogger.Log(event)
|
||||
})
|
||||
logging.Info("Event logger initialized", "targets", cfg.EventLogger.Targets)
|
||||
}
|
||||
}
|
||||
|
||||
// Load hooks
|
||||
srv.hookMgr.LoadHooks(cfg.Hooks)
|
||||
|
||||
@@ -142,6 +159,14 @@ func main() {
|
||||
}
|
||||
|
||||
srv.whatsappMgr.DisconnectAll()
|
||||
|
||||
// Close event logger
|
||||
if srv.eventLogger != nil {
|
||||
if err := srv.eventLogger.Close(); err != nil {
|
||||
logging.Error("Failed to close event logger", "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
logging.Info("Server stopped")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user