From 8aa47e7b6c44df3821c971c1ab18479b750b6aff Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Wed, 28 Jul 2021 21:02:34 +0200 Subject: [PATCH 1/2] Add WithStacktrace utility Doesn't have to get merged, I know I'm looking for it sometimes so it is good to have knowhow about it somewhere. Signed-off-by: Jakub Sztandera --- log.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/log.go b/log.go index 784e9e5..be96a37 100644 --- a/log.go +++ b/log.go @@ -6,6 +6,7 @@ import ( "time" "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) // StandardLogger provides API compatibility with standard printf loggers @@ -73,3 +74,11 @@ func (logger *ZapEventLogger) Warningf(format string, args ...interface{}) { func FormatRFC3339(t time.Time) string { return t.UTC().Format(time.RFC3339Nano) } + +func WithStacktrace(l *ZapEventLogger) *ZapEventLogger { + copyLogger := *l + copyLogger.SugaredLogger = *copyLogger.SugaredLogger.Desugar(). + WithOptions(zap.AddStacktrace(zapcore.InfoLevel)).Sugar() + copyLogger.skipLogger = *copyLogger.SugaredLogger.Desugar().WithOptions(zap.AddCallerSkip(1)).Sugar() + return ©Logger +} From ced9133eb3903e40372c9503e0a1b0ed969fe435 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 3 Aug 2021 00:24:22 +0200 Subject: [PATCH 2/2] Add option to configure level Signed-off-by: Jakub Sztandera --- log.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/log.go b/log.go index be96a37..6b0c444 100644 --- a/log.go +++ b/log.go @@ -75,10 +75,10 @@ func FormatRFC3339(t time.Time) string { return t.UTC().Format(time.RFC3339Nano) } -func WithStacktrace(l *ZapEventLogger) *ZapEventLogger { +func WithStacktrace(l *ZapEventLogger, level LogLevel) *ZapEventLogger { copyLogger := *l copyLogger.SugaredLogger = *copyLogger.SugaredLogger.Desugar(). - WithOptions(zap.AddStacktrace(zapcore.InfoLevel)).Sugar() + WithOptions(zap.AddStacktrace(zapcore.Level(level))).Sugar() copyLogger.skipLogger = *copyLogger.SugaredLogger.Desugar().WithOptions(zap.AddCallerSkip(1)).Sugar() return ©Logger }