xmidt-org/themis

View on GitHub
xhealth/log.go

Summary

Maintainability
A
0 mins
Test Coverage
package xhealth

import (
    "fmt"

    healthlog "github.com/InVisionApp/go-logger"
    kitlog "github.com/go-kit/kit/log"
    "github.com/go-kit/kit/log/level"
    "github.com/xmidt-org/themis/xlog"
)

type loggerAdapter struct {
    kitlog.Logger
}

func (la loggerAdapter) Debug(msg ...interface{}) {
    la.Logger.Log(
        level.Key(), level.DebugValue(),
        xlog.MessageKey(), fmt.Sprint(msg...),
    )
}

func (la loggerAdapter) Info(msg ...interface{}) {
    la.Logger.Log(
        level.Key(), level.InfoValue(),
        xlog.MessageKey(), fmt.Sprint(msg...),
    )
}

func (la loggerAdapter) Warn(msg ...interface{}) {
    la.Logger.Log(
        level.Key(), level.WarnValue(),
        xlog.MessageKey(), fmt.Sprint(msg...),
    )
}

func (la loggerAdapter) Error(msg ...interface{}) {
    la.Logger.Log(
        level.Key(), level.ErrorValue(),
        xlog.MessageKey(), fmt.Sprint(msg...),
    )
}

func (la loggerAdapter) Debugln(msg ...interface{}) {
    la.Debug(msg...)
}

func (la loggerAdapter) Infoln(msg ...interface{}) {
    la.Info(msg...)
}

func (la loggerAdapter) Warnln(msg ...interface{}) {
    la.Warn(msg...)
}

func (la loggerAdapter) Errorln(msg ...interface{}) {
    la.Error(msg...)
}

func (la loggerAdapter) Debugf(format string, args ...interface{}) {
    la.Logger.Log(
        level.Key(), level.DebugValue(),
        xlog.MessageKey(), fmt.Sprintf(format, args...),
    )
}

func (la loggerAdapter) Infof(format string, args ...interface{}) {
    la.Logger.Log(
        level.Key(), level.InfoValue(),
        xlog.MessageKey(), fmt.Sprintf(format, args...),
    )
}

func (la loggerAdapter) Warnf(format string, args ...interface{}) {
    la.Logger.Log(
        level.Key(), level.WarnValue(),
        xlog.MessageKey(), fmt.Sprintf(format, args...),
    )
}

func (la loggerAdapter) Errorf(format string, args ...interface{}) {
    la.Logger.Log(
        level.Key(), level.ErrorValue(),
        xlog.MessageKey(), fmt.Sprintf(format, args...),
    )
}

func (la loggerAdapter) WithFields(f healthlog.Fields) healthlog.Logger {
    fields := make([]interface{}, 0, 2*len(f))
    for name, value := range f {
        fields = append(fields, name, value)
    }

    return loggerAdapter{
        Logger: kitlog.With(
            la.Logger,
            fields...,
        ),
    }
}

// NewHealthLoggerAdapter adapts a go-kit logger onto the go-logger package's logger interface
func NewHealthLoggerAdapter(logger kitlog.Logger) healthlog.Logger {
    return loggerAdapter{Logger: logger}
}