mirror of
https://github.com/hanzo-fi/go-libs.git
synced 2026-10-30 20:53:44 +00:00
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package temporal
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"go.temporal.io/sdk/log"
|
|
|
|
logging "github.com/hanzo-fi/go-libs/v5/pkg/observe/log"
|
|
)
|
|
|
|
func keyvalsToMap(keyvals ...interface{}) map[string]any {
|
|
ret := make(map[string]any)
|
|
for i := 0; i+1 < len(keyvals); i += 2 {
|
|
ret[fmt.Sprint(keyvals[i])] = keyvals[i+1]
|
|
}
|
|
return ret
|
|
}
|
|
|
|
type logger struct {
|
|
logger logging.Logger
|
|
}
|
|
|
|
type warnLogger interface {
|
|
Warnf(format string, args ...any)
|
|
}
|
|
|
|
func (l logger) Debug(msg string, keyvals ...interface{}) {
|
|
l.logger.WithFields(keyvalsToMap(keyvals...)).Debugf("%s", msg)
|
|
}
|
|
|
|
func (l logger) Info(msg string, keyvals ...interface{}) {
|
|
l.logger.WithFields(keyvalsToMap(keyvals...)).Infof("%s", msg)
|
|
}
|
|
|
|
func (l logger) Warn(msg string, keyvals ...interface{}) {
|
|
logger := l.logger.WithFields(keyvalsToMap(keyvals...))
|
|
if warnLogger, ok := logger.(warnLogger); ok {
|
|
warnLogger.Warnf("%s", msg)
|
|
return
|
|
}
|
|
logger.Infof("%s", msg)
|
|
}
|
|
|
|
func (l logger) Error(msg string, keyvals ...interface{}) {
|
|
l.logger.WithFields(keyvalsToMap(keyvals...)).Errorf("%s", msg)
|
|
}
|
|
|
|
var _ log.Logger = (*logger)(nil)
|
|
|
|
func newLogger(l logging.Logger) *logger {
|
|
return &logger{
|
|
logger: l,
|
|
}
|
|
}
|