mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
feat(logs): show full log event (#1096)
* feat(logs): show all extra fields in UI * feat(logs): init log level as debug then trace
This commit is contained in:
parent
7b77ff766e
commit
cbf668e87c
6 changed files with 448 additions and 88 deletions
|
@ -160,7 +160,9 @@ func (h *Handler) Run() error {
|
|||
addr = h.network.BouncerAddr
|
||||
}
|
||||
|
||||
subLogger := zstdlog.NewStdLoggerWithLevel(h.log.With().Logger(), zerolog.TraceLevel)
|
||||
// this used to be TraceLevel but was changed to DebugLevel during connect to see the info without needing to change loglevel
|
||||
// we change back to TraceLevel in the handleJoined method.
|
||||
subLogger := zstdlog.NewStdLoggerWithLevel(h.log.With().Logger(), zerolog.DebugLevel)
|
||||
|
||||
h.client = &ircevent.Connection{
|
||||
Nick: h.network.Nick,
|
||||
|
@ -318,6 +320,7 @@ func (h *Handler) resetChannelHealth() {
|
|||
// Stop the network and quit
|
||||
func (h *Handler) Stop() {
|
||||
h.m.Lock()
|
||||
h.connectedSince = time.Time{}
|
||||
h.manuallyDisconnected = true
|
||||
|
||||
if h.client.Connected() {
|
||||
|
@ -325,6 +328,8 @@ func (h *Handler) Stop() {
|
|||
}
|
||||
h.m.Unlock()
|
||||
|
||||
h.resetChannelHealth()
|
||||
|
||||
h.client.Quit()
|
||||
}
|
||||
|
||||
|
@ -351,7 +356,7 @@ func (h *Handler) onConnect(m ircmsg.Message) {
|
|||
if h.haveDisconnected {
|
||||
h.notificationService.Send(domain.NotificationEventIRCReconnected, domain.NotificationPayload{
|
||||
Subject: "IRC Reconnected",
|
||||
Message: fmt.Sprintf("Network: %v", h.network.Name),
|
||||
Message: fmt.Sprintf("Network: %s", h.network.Name),
|
||||
})
|
||||
|
||||
// reset haveDisconnected
|
||||
|
@ -359,12 +364,13 @@ func (h *Handler) onConnect(m ircmsg.Message) {
|
|||
}
|
||||
h.m.Unlock()
|
||||
|
||||
h.log.Debug().Msgf("connected to: %v", h.network.Name)
|
||||
h.log.Debug().Msgf("connected to: %s", h.network.Name)
|
||||
}()
|
||||
|
||||
time.Sleep(1 * time.Second)
|
||||
|
||||
h.authenticate()
|
||||
|
||||
}
|
||||
|
||||
// onDisconnect is the disconnect callback
|
||||
|
@ -391,7 +397,7 @@ func (h *Handler) onDisconnect(m ircmsg.Message) {
|
|||
// only send notification if we did not initiate disconnect/restart/stop
|
||||
h.notificationService.Send(domain.NotificationEventIRCDisconnected, domain.NotificationPayload{
|
||||
Subject: "IRC Disconnected unexpectedly",
|
||||
Message: fmt.Sprintf("Network: %v", h.network.Name),
|
||||
Message: fmt.Sprintf("Network: %s", h.network.Name),
|
||||
})
|
||||
} else {
|
||||
// reset
|
||||
|
@ -466,7 +472,7 @@ func (h *Handler) handleNickServ(msg ircmsg.Message) {
|
|||
if contains(msg.Params[1], "invalid parameters", "help identify") {
|
||||
h.log.Debug().Msgf("NOTICE nickserv invalid: %v", msg.Params)
|
||||
|
||||
if err := h.client.Send("PRIVMSG", "NickServ", fmt.Sprintf("IDENTIFY %v %v", h.network.Auth.Account, h.network.Auth.Password)); err != nil {
|
||||
if err := h.client.Send("PRIVMSG", "NickServ", fmt.Sprintf("IDENTIFY %s %s", h.network.Auth.Account, h.network.Auth.Password)); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@ -520,7 +526,7 @@ func (h *Handler) inviteCommand() {
|
|||
if h.network.InviteCommand != "" {
|
||||
h.log.Trace().Msg("on connect invite command not empty: send connect commands")
|
||||
if err := h.sendConnectCommands(h.network.InviteCommand); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("error sending connect command %v", h.network.InviteCommand)
|
||||
h.log.Error().Stack().Err(err).Msgf("error sending connect command %s", h.network.InviteCommand)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@ -541,7 +547,7 @@ func contains(s string, substr ...string) bool {
|
|||
|
||||
// onNick handles NICK events
|
||||
func (h *Handler) onNick(msg ircmsg.Message) {
|
||||
h.log.Trace().Msgf("NICK event: %v params: %v", msg.Nick(), msg.Params)
|
||||
h.log.Trace().Msgf("NICK event: %s params: %v", msg.Nick(), msg.Params)
|
||||
if len(msg.Params) < 1 {
|
||||
return
|
||||
}
|
||||
|
@ -593,7 +599,7 @@ func (h *Handler) onMessage(msg ircmsg.Message) {
|
|||
h.log.Debug().Str("channel", channel).Str("nick", nick).Msg(cleanedMsg)
|
||||
|
||||
if err := h.sendToAnnounceProcessor(channel, cleanedMsg); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("could not queue line: %v", cleanedMsg)
|
||||
h.log.Error().Stack().Err(err).Msgf("could not queue line: %s", cleanedMsg)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -607,12 +613,12 @@ func (h *Handler) sendToAnnounceProcessor(channel string, msg string) error {
|
|||
// check if queue exists
|
||||
queue, ok := h.announceProcessors[channel]
|
||||
if !ok {
|
||||
return errors.New("queue '%v' not found", channel)
|
||||
return errors.New("queue '%s' not found", channel)
|
||||
}
|
||||
|
||||
// if it exists, add msg
|
||||
if err := queue.AddLineToQueue(channel, msg); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("could not queue line: %v", msg)
|
||||
h.log.Error().Stack().Err(err).Msgf("could not queue line: %s", msg)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -627,7 +633,7 @@ func (h *Handler) sendToAnnounceProcessor(channel string, msg string) error {
|
|||
func (h *Handler) JoinChannels() {
|
||||
for _, channel := range h.network.Channels {
|
||||
if err := h.JoinChannel(channel.Name, channel.Password); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("error joining channel %v", channel.Name)
|
||||
h.log.Error().Stack().Err(err).Msgf("error joining channel %s", channel.Name)
|
||||
}
|
||||
time.Sleep(1 * time.Second)
|
||||
}
|
||||
|
@ -645,10 +651,10 @@ func (h *Handler) JoinChannel(channel string, password string) error {
|
|||
m.Params = []string{channel, password}
|
||||
}
|
||||
|
||||
h.log.Debug().Msgf("sending JOIN command %v", strings.Join(m.Params, " "))
|
||||
h.log.Debug().Msgf("sending JOIN command %s", strings.Join(m.Params, " "))
|
||||
|
||||
if err := h.client.SendIRCMessage(m); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("error handling join: %v", channel)
|
||||
h.log.Error().Stack().Err(err).Msgf("error handling join: %s", channel)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -663,7 +669,7 @@ func (h *Handler) handlePart(msg ircmsg.Message) {
|
|||
}
|
||||
|
||||
channel := strings.ToLower(msg.Params[0])
|
||||
h.log.Debug().Msgf("PART channel %v", channel)
|
||||
h.log.Debug().Msgf("PART channel %s", channel)
|
||||
|
||||
// reset monitoring status
|
||||
if v, ok := h.channelHealth[channel]; ok {
|
||||
|
@ -672,15 +678,15 @@ func (h *Handler) handlePart(msg ircmsg.Message) {
|
|||
|
||||
// TODO remove announceProcessor
|
||||
|
||||
h.log.Debug().Msgf("Left channel %v", channel)
|
||||
h.log.Debug().Msgf("Left channel %s", channel)
|
||||
}
|
||||
|
||||
// PartChannel parts/leaves channel
|
||||
func (h *Handler) PartChannel(channel string) error {
|
||||
h.log.Debug().Msgf("Leaving channel %v", channel)
|
||||
h.log.Debug().Msgf("Leaving channel %s", channel)
|
||||
|
||||
if err := h.client.Part(channel); err != nil {
|
||||
h.log.Error().Err(err).Msgf("error handling part: %v", channel)
|
||||
h.log.Error().Err(err).Msgf("error handling part: %s", channel)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -699,12 +705,12 @@ func (h *Handler) handleJoined(msg ircmsg.Message) {
|
|||
// get channel
|
||||
channel := strings.ToLower(msg.Params[1])
|
||||
|
||||
h.log.Debug().Msgf("JOINED: %v", channel)
|
||||
h.log.Debug().Msgf("JOINED: %s", channel)
|
||||
|
||||
// check if channel is valid and if not lets part
|
||||
if valid := h.isValidHandlerChannel(channel); !valid {
|
||||
if err := h.PartChannel(msg.Params[1]); err != nil {
|
||||
h.log.Error().Err(err).Msgf("error handling part for unwanted channel: %v", msg.Params[1])
|
||||
h.log.Error().Err(err).Msgf("error handling part for unwanted channel: %s", msg.Params[1])
|
||||
return
|
||||
}
|
||||
return
|
||||
|
@ -717,7 +723,7 @@ func (h *Handler) handleJoined(msg ircmsg.Message) {
|
|||
v.monitoring = true
|
||||
v.monitoringSince = time.Now()
|
||||
|
||||
h.log.Trace().Msgf("set monitoring: %v", v.name)
|
||||
h.log.Trace().Msgf("set monitoring: %s", v.name)
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -727,17 +733,20 @@ func (h *Handler) handleJoined(msg ircmsg.Message) {
|
|||
monitoringSince: time.Now(),
|
||||
}
|
||||
|
||||
h.log.Trace().Msgf("add channel health monitoring: %v", channel)
|
||||
h.log.Trace().Msgf("add channel health monitoring: %s", channel)
|
||||
}
|
||||
h.m.Unlock()
|
||||
|
||||
// if not valid it's considered an extra channel
|
||||
if valid := h.isValidChannel(channel); !valid {
|
||||
h.log.Info().Msgf("Joined extra channel %v", channel)
|
||||
h.log.Info().Msgf("Joined extra channel %s", channel)
|
||||
return
|
||||
}
|
||||
|
||||
h.log.Info().Msgf("Monitoring channel %v", channel)
|
||||
h.log.Info().Msgf("Monitoring channel %s", channel)
|
||||
|
||||
// reset log level to Trace now that we are monitoring a channel
|
||||
h.client.Log = zstdlog.NewStdLoggerWithLevel(h.log.With().Logger(), zerolog.TraceLevel)
|
||||
}
|
||||
|
||||
// sendConnectCommands sends invite commands
|
||||
|
@ -758,7 +767,7 @@ func (h *Handler) sendConnectCommands(msg string) error {
|
|||
Params: strings.Split(cmd, " "),
|
||||
}
|
||||
|
||||
h.log.Debug().Msgf("sending connect command: %v", cmd)
|
||||
h.log.Debug().Msgf("sending connect command: %s", cmd)
|
||||
|
||||
if err := h.client.SendIRCMessage(m); err != nil {
|
||||
h.log.Error().Err(err).Msgf("error handling connect command: %v", m)
|
||||
|
@ -780,17 +789,17 @@ func (h *Handler) handleInvite(msg ircmsg.Message) {
|
|||
// get channel
|
||||
channel := strings.ToLower(msg.Params[1])
|
||||
|
||||
h.log.Trace().Msgf("INVITE from %v to join: %v", msg.Nick(), channel)
|
||||
h.log.Trace().Msgf("INVITE from %s to join: %s", msg.Nick(), channel)
|
||||
|
||||
if validChannel := h.isValidHandlerChannel(channel); !validChannel {
|
||||
h.log.Trace().Msgf("invite from %v to join: %v - invalid channel, skip joining", msg.Nick(), channel)
|
||||
h.log.Trace().Msgf("invite from %s to join: %s - invalid channel, skip joining", msg.Nick(), channel)
|
||||
return
|
||||
}
|
||||
|
||||
h.log.Debug().Msgf("INVITE from %v, joining %v", msg.Nick(), channel)
|
||||
h.log.Debug().Msgf("INVITE from %s, joining %s", msg.Nick(), channel)
|
||||
|
||||
if err := h.client.Join(msg.Params[1]); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("error handling join: %v", msg.Params[1])
|
||||
h.log.Error().Stack().Err(err).Msgf("error handling join: %s", msg.Params[1])
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -816,7 +825,7 @@ func (h *Handler) NickServIdentify(password string) error {
|
|||
|
||||
// NickChange sets a new nick for our user
|
||||
func (h *Handler) NickChange(nick string) error {
|
||||
h.log.Debug().Msgf("NICK change: %v", nick)
|
||||
h.log.Debug().Msgf("NICK change: %s", nick)
|
||||
|
||||
h.client.SetNick(nick)
|
||||
|
||||
|
@ -853,7 +862,7 @@ func (h *Handler) SendMsg(channel, msg string) error {
|
|||
h.log.Debug().Msgf("sending msg command: %s", msg)
|
||||
|
||||
if err := h.client.Privmsg(channel, msg); err != nil {
|
||||
h.log.Error().Stack().Err(err).Msgf("error sending msg: %v", msg)
|
||||
h.log.Error().Stack().Err(err).Msgf("error sending msg: %s", msg)
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue