mirror of
https://github.com/zrepl/zrepl.git
synced 2024-12-23 07:28:57 +01:00
b95e983d0d
logging should be user-friendly in INFO mode
33 lines
730 B
Go
33 lines
730 B
Go
package logging
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/problame/go-streamrpc"
|
|
"github.com/zrepl/zrepl/logger"
|
|
"strings"
|
|
)
|
|
|
|
type streamrpcLogAdaptor = twoClassLogAdaptor
|
|
|
|
type twoClassLogAdaptor struct {
|
|
logger.Logger
|
|
}
|
|
|
|
var _ streamrpc.Logger = twoClassLogAdaptor{}
|
|
|
|
func (a twoClassLogAdaptor) Errorf(fmtStr string, args ...interface{}) {
|
|
const errorSuffix = ": %s"
|
|
if len(args) == 1 {
|
|
if err, ok := args[0].(error); ok && strings.HasSuffix(fmtStr, errorSuffix) {
|
|
msg := strings.TrimSuffix(fmtStr, errorSuffix)
|
|
a.WithError(err).Error(msg)
|
|
return
|
|
}
|
|
}
|
|
a.Logger.Error(fmt.Sprintf(fmtStr, args...))
|
|
}
|
|
|
|
func (a twoClassLogAdaptor) Infof(fmtStr string, args ...interface{}) {
|
|
a.Logger.Debug(fmt.Sprintf(fmtStr, args...))
|
|
}
|