mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-15 14:36:48 +02:00
33 lines
660 B
Go
33 lines
660 B
Go
package notif
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type RetryMessage struct {
|
|
Message *LogMessage
|
|
Trials int
|
|
Provider Provider
|
|
NextRetry time.Time
|
|
}
|
|
|
|
var maxRetries = map[zerolog.Level]int{
|
|
zerolog.DebugLevel: 1,
|
|
zerolog.InfoLevel: 1,
|
|
zerolog.WarnLevel: 3,
|
|
zerolog.ErrorLevel: 5,
|
|
zerolog.FatalLevel: 10,
|
|
zerolog.PanicLevel: 10,
|
|
}
|
|
|
|
func (msg *RetryMessage) MarshalZerologObject(e *zerolog.Event) {
|
|
e.Str("provider", msg.Provider.GetName()).
|
|
Int("trial", msg.Trials+1).
|
|
Str("title", msg.Message.Title)
|
|
if !msg.NextRetry.IsZero() {
|
|
e.Int("max_retries", maxRetries[msg.Message.Level]).
|
|
Time("next_retry", msg.NextRetry)
|
|
}
|
|
}
|