# README
flash
Creates an opinionated zap logger.
Adapting it as a logr.Logger
instance
Shall you at some point need to pass a logr.Logger
instance in your code, e.g. while writing code that uses the
Kubernetes client library etc., you can use go-logr/zapr
to wrap the logger, as follows:
package main
import (
"github.com/go-logr/zapr"
"github.com/postfinance/flash"
)
func main() {
l := flash.New()
z := zapr.NewLogger(l.Desugar())
z.V(0).Info("I'm a zap logger complying with logr.Logger interface !")
}
Logger Without Stacktrace
New Logger
Debug / Info / Error
2020-10-09T09:29:06.363+0200 INFO test/main.go:26 message {"StackTrace": "off", "debug": false}
2020-10-09T09:29:06.364+0200 ERROR test/main.go:27 message {"StackTrace": "off", "debug": false}
Enable Debug
Debug / Info / Error
2020-10-09T09:29:06.364+0200 DEBUG test/main.go:33 message {"StackTrace": "off", "debug": true}
2020-10-09T09:29:06.364+0200 INFO test/main.go:34 message {"StackTrace": "off", "debug": true}
2020-10-09T09:29:06.364+0200 ERROR test/main.go:35 message {"StackTrace": "off", "debug": true}
Disable Debug
Debug / Info / Error
2020-10-09T09:29:06.364+0200 INFO test/main.go:42 message {"StackTrace": "off", "debug": false}
2020-10-09T09:29:06.364+0200 ERROR test/main.go:43 message {"StackTrace": "off", "debug": false}
Fatal
2020-10-09T09:29:06.364+0200 FATAL test/main.go:47 message {"StackTrace": "on", "debug": false}
exit status 1
Logger With Stacktrace
New Logger
Debug / Info / Error
2020-10-09T09:29:11.889+0200 INFO test/main.go:26 message {"StackTrace": "off", "debug": false}
2020-10-09T09:29:11.889+0200 ERROR test/main.go:27 message {"StackTrace": "off", "debug": false}
Enable Debug (Stacktrace on Error or above)
Debug / Info / Error
2020-10-09T09:29:11.889+0200 DEBUG test/main.go:33 message {"StackTrace": "off", "debug": true}
2020-10-09T09:29:11.889+0200 INFO test/main.go:34 message {"StackTrace": "off", "debug": true}
2020-10-09T09:29:11.889+0200 ERROR test/main.go:35 message {"StackTrace": "off", "debug": true}
main.main
/export/home/sauterm/tmp/test/main.go:35
runtime.main
/export/home/sauterm/.gimme/versions/go1.15.2.linux.amd64/src/runtime/proc.go:204
Disable Debug (Stacktrace on Fatal only)
Debug / Info / Error
2020-10-09T09:29:11.889+0200 INFO test/main.go:42 message {"StackTrace": "off", "debug": false}
2020-10-09T09:29:11.889+0200 ERROR test/main.go:43 message {"StackTrace": "off", "debug": false}
Fatal
2020-10-09T09:29:11.889+0200 FATAL test/main.go:47 message {"StackTrace": "on", "debug": false}
main.main
/export/home/sauterm/tmp/test/main.go:47
runtime.main
/export/home/sauterm/.gimme/versions/go1.15.2.linux.amd64/src/runtime/proc.go:204
exit status 1
# Functions
New creates a new Logger.
WithColor enables color output.
WithDebug enables or disables `DebugLevel`.
WithEncoder configures the zap encoder.
WithFile configures the logger to log output into a file.
WithoutCaller stops annotating logs with the calling function's file name and line number.
WithoutTimestamps configures the logger to log without timestamps.
WithPrometheus registers a prometheus log message counter.
WithSinks changes the default zap `stderr` sink.
WithStacktrace completely enables automatic stacktrace capturing.
# Structs
FileConfig holds the configuration for logging into a file.
Logger is the flash logger which embeds a `zap.SugaredLogger`.