Răsfoiți Sursa

Add user ID to discordgo logs

Tulir Asokan 2 ani în urmă
părinte
comite
f247c679de
3 a modificat fișierele cu 23 adăugiri și 15 ștergeri
  1. 1 1
      go.mod
  2. 2 2
      go.sum
  3. 20 12
      user.go

+ 1 - 1
go.mod

@@ -37,4 +37,4 @@ require (
 	maunium.net/go/mauflag v1.0.0 // indirect
 )
 
-replace github.com/bwmarrin/discordgo => github.com/beeper/discordgo v0.0.0-20230421234845-798d8c4943a5
+replace github.com/bwmarrin/discordgo => github.com/beeper/discordgo v0.0.0-20230425174737-526618ee92f8

+ 2 - 2
go.sum

@@ -1,6 +1,6 @@
 github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
-github.com/beeper/discordgo v0.0.0-20230421234845-798d8c4943a5 h1:goe2lr+0qYbVtdidyl3UMurIGdFnXXZqmNq0vWZo4f4=
-github.com/beeper/discordgo v0.0.0-20230421234845-798d8c4943a5/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
+github.com/beeper/discordgo v0.0.0-20230425174737-526618ee92f8 h1:9GiqpUOVfcgn27okKcuTLgOJ2BucQlwpX0wrFj+c6WA=
+github.com/beeper/discordgo v0.0.0-20230425174737-526618ee92f8/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
 github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

+ 20 - 12
user.go

@@ -79,20 +79,24 @@ func (user *User) GetRemoteName() string {
 
 var discordLog zerolog.Logger
 
+func discordToZeroLevel(level int) zerolog.Level {
+	switch level {
+	case discordgo.LogError:
+		return zerolog.ErrorLevel
+	case discordgo.LogWarning:
+		return zerolog.WarnLevel
+	case discordgo.LogInformational:
+		return zerolog.InfoLevel
+	case discordgo.LogDebug:
+		fallthrough
+	default:
+		return zerolog.DebugLevel
+	}
+}
+
 func init() {
 	discordgo.Logger = func(msgL, caller int, format string, a ...interface{}) {
-		var level zerolog.Level
-		switch msgL {
-		case discordgo.LogError:
-			level = zerolog.ErrorLevel
-		case discordgo.LogWarning:
-			level = zerolog.WarnLevel
-		case discordgo.LogInformational:
-			level = zerolog.InfoLevel
-		case discordgo.LogDebug:
-			level = zerolog.DebugLevel
-		}
-		discordLog.WithLevel(level).Caller(caller+1).Msgf(strings.TrimSpace(format), a...)
+		discordLog.WithLevel(discordToZeroLevel(msgL)).Caller(caller+1).Msgf(strings.TrimSpace(format), a...)
 	}
 }
 
@@ -563,6 +567,10 @@ func (user *User) Connect() error {
 	} else {
 		session.LogLevel = discordgo.LogInformational
 	}
+	userDiscordLog := user.log.With().Str("component", "discordgo").Logger()
+	session.Logger = func(msgL, caller int, format string, a ...interface{}) {
+		userDiscordLog.WithLevel(discordToZeroLevel(msgL)).Caller(caller+1).Msgf(strings.TrimSpace(format), a...)
+	}
 	if !session.IsUser {
 		session.Identify.Intents = BotIntents
 	}