Documentation ¶
Overview ¶
Package logger implements a simple way to init a global logger and access it through a logr.Logger interface.
Message:
All messages should start with a capital letter.
Log level:
The loggers only support verbosity levels (V-levels) instead of semantic levels. Level zero, the default, matters most. Increasing levels matter less and less.
- 0: You always want to see this.
- 1: Common logging that you don't want to show by default.
- 2: Useful steady state information about the operation and important log messages that may correlate to significant changes in the system.
- 3: Extended information about changes. Somehow useful information to the user that is not important enough for level 2.
- 4: Debugging information. Starting from this level, all logs are oriented to developers and troubleshooting.
- 5: Traces. Information to follow the code path.
- 6: Information about interaction with external resources. External binary commands, api calls.
- 7: Extra information passed to external systems. Configuration files, kubernetes manifests, etc.
- 8: Truncated external binaries and clients output/responses.
- 9: Full external binaries and clients output/responses.
Logging WithValues:
Logging WithValues should be preferred to embedding values into log messages because it allows machine readability.
Variables name should start with a capital letter.
Logging WithNames:
Logging WithNames should be used carefully. Please consider that practices like prefixing the logs with something indicating which part of code is generating the log entry might be useful for developers, but it can create confusion for the end users because it increases the verbosity without providing information the user can understand/take benefit from.
Logging errors:
A proper error management should always be preferred to the usage of log.Error.
Index ¶
- func Error(err error, msg string, keysAndValues ...interface{})
- func Fatal(err error, msg string)
- func Get() logr.Logger
- func Info(msg string, keysAndValues ...interface{})
- func InitZap(level int, opts ...LoggerOpt) error
- func MarkFail(msg string, keysAndValues ...interface{})
- func MarkPass(msg string, keysAndValues ...interface{})
- func MarkSuccess(msg string, keysAndValues ...interface{})
- func MaxLogging() bool
- func MaxLoggingLevel() int
- func NullTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder)
- func V(level int) logr.Logger
- func VLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder)
- type LoggerOpt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Get ¶
Get returns the logger instance that has been previously set. If no logger has been set, it returns a null logger.
func Info ¶
func Info(msg string, keysAndValues ...interface{})
Info logs a non-error message with the given key/value pairs as context.
The msg argument should be used to add some constant description to the log line. The key/value pairs can then be used to add additional variable information. The key/value pairs should alternate string keys and arbitrary values.
func InitZap ¶
InitZap creates a zap logger with the provided verbosity level and sets it as the package logger. 0 is the least verbose and 10 the most verbose. The package logger can only be init once, so subsequent calls to this method won't have any effect
func MarkSuccess ¶
func MarkSuccess(msg string, keysAndValues ...interface{})
func MaxLogging ¶
func MaxLogging() bool
func MaxLoggingLevel ¶ added in v0.9.0
func MaxLoggingLevel() int
func NullTimeEncoder ¶
func NullTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder)
NullTimeEncoder skips time serialization
func V ¶
V returns an Logger value for a specific verbosity level, relative to this Logger. In other words, V values are additive. V higher verbosity level means a log message is less important. It's illegal to pass a log level less than zero.
func VLevelEncoder ¶
func VLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder)
VLevelEncoder serializes a Level to V + v-level number,