mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-02 18:12:15 +00:00
28 lines
695 B
Go
28 lines
695 B
Go
|
package log
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
kitlog "github.com/go-kit/kit/log"
|
||
|
)
|
||
|
|
||
|
// Logger is what any Tendermint library should take.
|
||
|
type Logger interface {
|
||
|
Debug(msg string, keyvals ...interface{}) error
|
||
|
Info(msg string, keyvals ...interface{}) error
|
||
|
Error(msg string, keyvals ...interface{}) error
|
||
|
}
|
||
|
|
||
|
// With returns a new contextual logger with keyvals prepended to those passed
|
||
|
// to calls to Info, Debug or Error.
|
||
|
func With(logger Logger, keyvals ...interface{}) Logger {
|
||
|
switch logger.(type) {
|
||
|
case *tmLogger:
|
||
|
return &tmLogger{kitlog.With(logger.(*tmLogger).srcLogger, keyvals...)}
|
||
|
case *nopLogger:
|
||
|
return logger
|
||
|
default:
|
||
|
panic(fmt.Sprintf("Unexpected logger of type %T", logger))
|
||
|
}
|
||
|
}
|