Documentation ¶
Index ¶
- Constants
- func NewSyncWriter(w io.Writer) io.Writer
- func NewTMFmtLogger(w io.Writer) kitlog.Logger
- func OverrideWithNewLogger(logger Logger, format, level string) error
- type Logger
- func NewDefaultLogger(format, level string) (Logger, error)
- func NewFilter(next Logger, options ...Option) Logger
- func NewNopLogger() Logger
- func NewTMJSONLogger(w io.Writer) Logger
- func NewTMJSONLoggerNoTS(w io.Writer) Logger
- func NewTMLogger(w io.Writer) Logger
- func NewTMLoggerWithColorFn(w io.Writer, colorFn func(keyvals ...interface{}) term.FgBgColor) Logger
- func NewTestingLogger(t testing.TB) Logger
- func NewTestingLoggerWithLevel(t testing.TB, level string) Logger
- func NewTracingLogger(next Logger) Logger
- func TestingLogger() Logger
- func TestingLoggerWithColorFn(colorFn func(keyvals ...interface{}) term.FgBgColor) Logger
- func TestingLoggerWithOutput(w io.Writer) Logger
- type Option
- func AllowAll() Option
- func AllowDebug() Option
- func AllowDebugWith(key interface{}, value interface{}) Option
- func AllowError() Option
- func AllowErrorWith(key interface{}, value interface{}) Option
- func AllowInfo() Option
- func AllowInfoWith(key interface{}, value interface{}) Option
- func AllowLevel(lvl string) (Option, error)
- func AllowNone() Option
- func AllowNoneWith(key interface{}, value interface{}) Option
Constants ¶
const ( // LogFormatPlain defines a logging format used for human-readable text-based // logging that is not structured. Typically, this format is used for development // and testing purposes. LogFormatPlain string = "plain" // LogFormatText defines a logging format used for human-readable text-based // logging that is not structured. Typically, this format is used for development // and testing purposes. LogFormatText string = "text" // LogFormatJSON defines a logging format for structured JSON-based logging // that is typically used in production environments, which can be sent to // logging facilities that support complex log parsing and querying. LogFormatJSON string = "json" // Supported loging levels LogLevelDebug = "debug" LogLevelInfo = "info" LogLevelWarn = "warn" LogLevelError = "error" )
Variables ¶
This section is empty.
Functions ¶
func NewTMFmtLogger ¶
NewTMFmtLogger returns a logger that encodes keyvals to the Writer in Tendermint custom format. Note complex types (structs, maps, slices) formatted as "%+v".
Each log event produces no more than one call to w.Write. The passed Writer must be safe for concurrent use by multiple goroutines if the returned Logger will be used concurrently.
func OverrideWithNewLogger ¶
OverrideWithNewLogger replaces an existing logger's internal with a new logger, and makes it possible to reconfigure an existing logger that has already been propagated to callers.
Types ¶
type Logger ¶
type Logger interface { Debug(msg string, keyVals ...interface{}) Info(msg string, keyVals ...interface{}) Error(msg string, keyVals ...interface{}) With(keyVals ...interface{}) Logger }
Logger defines a generic logging interface compatible with Tendermint.
func NewDefaultLogger ¶
NewDefaultLogger returns a default logger that can be used within Tendermint and that fulfills the Logger interface. The underlying logging provider is a zerolog logger that supports typical log levels along with JSON and plain/text log formats.
Since zerolog supports typed structured logging and it is difficult to reflect that in a generic interface, all logging methods accept a series of key/value pair tuples, where the key must be a string.
func NewFilter ¶
NewFilter wraps next and implements filtering. See the commentary on the Option functions for a detailed description of how to configure levels. If no options are provided, all leveled log events created with Debug, Info or Error helper methods are squelched.
func NewNopLogger ¶
func NewNopLogger() Logger
func NewTMJSONLogger ¶
NewTMJSONLogger returns a Logger that encodes keyvals to the Writer as a single JSON object. Each log event produces no more than one call to w.Write. The passed Writer must be safe for concurrent use by multiple goroutines if the returned Logger will be used concurrently.
func NewTMJSONLoggerNoTS ¶
NewTMJSONLoggerNoTS is the same as NewTMJSONLogger, but without the timestamp.
func NewTMLogger ¶
NewTMLogger returns a logger that encodes msg and keyvals to the Writer using go-kit's log as an underlying logger and our custom formatter. Note that underlying logger could be swapped with something else.
func NewTMLoggerWithColorFn ¶
func NewTMLoggerWithColorFn(w io.Writer, colorFn func(keyvals ...interface{}) term.FgBgColor) Logger
NewTMLoggerWithColorFn allows you to provide your own color function. See NewTMLogger for documentation.
func NewTestingLogger ¶
NewTestingLogger converts a testing.T into a logging interface to make test failures and verbose provide better feedback associated with test failures. This logging instance is safe for use from multiple threads, but in general you should create one of these loggers ONCE for each *testing.T instance that you interact with.
By default it collects only ERROR messages, or DEBUG messages in verbose mode, and relies on the underlying behavior of testing.T.Log()
Users should be careful to ensure that no calls to this logger are made in goroutines that are running after (which, by the rules of testing.TB will panic.)
func NewTestingLoggerWithLevel ¶
NewTestingLoggerWithLevel creates a testing logger instance at a specific level that wraps the behavior of testing.T.Log().
func NewTracingLogger ¶
NewTracingLogger enables tracing by wrapping all errors (if they implement stackTracer interface) in tracedError.
All errors returned by https://github.com/pkg/errors implement stackTracer interface.
For debugging purposes only as it doubles the amount of allocations.
func TestingLogger ¶
func TestingLogger() Logger
TestingLogger returns a TMLogger which writes to STDOUT if testing being run with the verbose (-v) flag, NopLogger otherwise.
Note that the call to TestingLogger() must be made inside a test (not in the init func) because verbose flag only set at the time of testing.
func TestingLoggerWithColorFn ¶
TestingLoggerWithColorFn allow you to provide your own color function. See TestingLogger for documentation.
func TestingLoggerWithOutput ¶
TestingLoggerWOutput returns a TMLogger which writes to (w io.Writer) if testing being run with the verbose (-v) flag, NopLogger otherwise.
Note that the call to TestingLoggerWithOutput(w io.Writer) must be made inside a test (not in the init func) because verbose flag only set at the time of testing.
type Option ¶
type Option func(*filter)
Option sets a parameter for the filter.
func AllowDebug ¶
func AllowDebug() Option
AllowDebug allows error, info and debug level log events to pass.
func AllowDebugWith ¶
func AllowDebugWith(key interface{}, value interface{}) Option
AllowDebugWith allows error, info and debug level log events to pass for a specific key value pair.
func AllowErrorWith ¶
func AllowErrorWith(key interface{}, value interface{}) Option
AllowErrorWith allows only error level log events to pass for a specific key value pair.
func AllowInfoWith ¶
func AllowInfoWith(key interface{}, value interface{}) Option
AllowInfoWith allows error and info level log events to pass for a specific key value pair.
func AllowLevel ¶
AllowLevel returns an option for the given level or error if no option exist for such level.
func AllowNoneWith ¶
func AllowNoneWith(key interface{}, value interface{}) Option
AllowNoneWith allows no leveled log events to pass for a specific key value pair.