From d30b33abfa0c657d783d7c9c025836f123a08a0e Mon Sep 17 00:00:00 2001 From: NamedKitten Date: Mon, 23 Oct 2017 21:08:14 +0100 Subject: [PATCH] Add support for custom logging behaviour. (#465) --- discord.go | 2 +- logging.go | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/discord.go b/discord.go index 6c098fd..df4c499 100644 --- a/discord.go +++ b/discord.go @@ -21,7 +21,7 @@ import ( ) // VERSION of DiscordGo, follows Semantic Versioning. (http://semver.org/) -const VERSION = "0.17.0-dev" +const VERSION = "0.17.0" // ErrMFA will be risen by New when the user has 2FA. var ErrMFA = errors.New("account has 2FA enabled") diff --git a/logging.go b/logging.go index 70d78d6..5626eba 100644 --- a/logging.go +++ b/logging.go @@ -34,6 +34,9 @@ const ( LogDebug ) +// Logger can be used to replace the standard logging for discordgo +var Logger func(msgL, caller int, format string, a ...interface{}) + // msglog provides package wide logging consistancy for discordgo // the format, a... portion this command follows that of fmt.Printf // msgL : LogLevel of the message @@ -42,18 +45,23 @@ const ( // a ... : comma seperated list of values to pass func msglog(msgL, caller int, format string, a ...interface{}) { - pc, file, line, _ := runtime.Caller(caller) + if Logger != nil { + Logger(msgL, caller, format, a) + } else { - files := strings.Split(file, "/") - file = files[len(files)-1] + pc, file, line, _ := runtime.Caller(caller) - name := runtime.FuncForPC(pc).Name() - fns := strings.Split(name, ".") - name = fns[len(fns)-1] + files := strings.Split(file, "/") + file = files[len(files)-1] - msg := fmt.Sprintf(format, a...) + name := runtime.FuncForPC(pc).Name() + fns := strings.Split(name, ".") + name = fns[len(fns)-1] - log.Printf("[DG%d] %s:%d:%s() %s\n", msgL, file, line, name, msg) + msg := fmt.Sprintf(format, a...) + + log.Printf("[DG%d] %s:%d:%s() %s\n", msgL, file, line, name, msg) + } } // helper function that wraps msglog for the Session struct