Logger migration from log15 to gokit/log (#41636)

* migrate log15 to gokit/log

* fix console log

* update some unittest

* fix all unittest

* fix the build

* Update pkg/infra/log/log.go

Co-authored-by: Yuriy Tseretyan <tceretian@gmail.com>

* general type vector

* correct the level key

Co-authored-by: Yuriy Tseretyan <tceretian@gmail.com>
This commit is contained in:
ying-jeanne
2022-01-06 22:28:05 +08:00
committed by GitHub
co-authored by Yuriy Tseretyan
parent 8898a5f0a0
commit a8eef45a44
17 changed files with 628 additions and 321 deletions
@@ -1,14 +1,16 @@
package loginservice
import (
"bytes"
"context"
"errors"
"testing"
"github.com/go-kit/log"
"github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/infra/log/level"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/quota"
log "github.com/inconshreveable/log15"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -43,11 +45,8 @@ func Test_syncOrgRoles_doesNotBreakWhenTryingToRemoveLastOrgAdmin(t *testing.T)
}
func Test_syncOrgRoles_whenTryingToRemoveLastOrgLogsError(t *testing.T) {
logs := []string{}
logger.SetHandler(log.FuncHandler(func(r *log.Record) error {
logs = append(logs, r.Msg)
return nil
}))
buf := &bytes.Buffer{}
logger.AddLogger(log.NewLogfmtLogger(buf), "info", map[string]level.Option{})
user := createSimpleUser()
externalUser := createSimpleExternalUser()
@@ -57,7 +56,6 @@ func Test_syncOrgRoles_whenTryingToRemoveLastOrgLogsError(t *testing.T) {
defer bus.ClearBusHandlers()
bus.AddHandler("test", func(ctx context.Context, q *models.GetUserOrgListQuery) error {
q.Result = createUserOrgDTO()
return nil
})
@@ -74,7 +72,7 @@ func Test_syncOrgRoles_whenTryingToRemoveLastOrgLogsError(t *testing.T) {
err := syncOrgRoles(context.Background(), &user, &externalUser)
require.NoError(t, err)
assert.Contains(t, logs, models.ErrLastOrgAdmin.Error())
assert.Contains(t, buf.String(), models.ErrLastOrgAdmin.Error())
}
type authInfoServiceMock struct {
+16 -15
View File
@@ -6,18 +6,17 @@ import (
"io"
"testing"
gokit_log "github.com/go-kit/kit/log"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/inconshreveable/log15"
glog "github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/log/level"
"github.com/stretchr/testify/require"
)
func Test_GoKitWrapper(t *testing.T) {
getLogger := func(writer io.Writer) log.Logger {
log15Logger := log15.New()
log15Logger.SetHandler(log15.StreamHandler(writer, log15.LogfmtFormat()))
return NewWrapper(log15Logger)
gLogger := glog.New()
gLogger.AddLogger(log.NewLogfmtLogger(writer), "info", map[string]level.Option{})
return NewWrapper(gLogger)
}
tests := []struct {
@@ -71,20 +70,21 @@ func Test_GoKitWrapper(t *testing.T) {
}
func Benchmark_Baseline(t *testing.B) {
log15Logger := log15.New()
gLogger := glog.New()
var buff bytes.Buffer
log15Logger.SetHandler(log15.StreamHandler(&buff, log15.LogfmtFormat()))
gLogger.AddLogger(log.NewLogfmtLogger(&buff), "info", map[string]level.Option{})
for i := 0; i < t.N; i++ {
log15Logger.Info("test", "some", "more", "context", "data")
gLogger.Info("test", "some", "more", "context", "data")
}
}
func Benchmark_WrapperLogger(t *testing.B) {
log15Logger := log15.New()
gLogger := glog.New()
var buff bytes.Buffer
log15Logger.SetHandler(log15.StreamHandler(&buff, log15.LogfmtFormat()))
gokit := NewWrapper(log15Logger)
gLogger.AddLogger(log.NewLogfmtLogger(&buff), "info", map[string]level.Option{})
gokit := NewWrapper(gLogger)
for i := 0; i < t.N; i++ {
_ = level.Info(gokit).Log("msg", "test", "some", "more", "context", "data")
@@ -92,10 +92,11 @@ func Benchmark_WrapperLogger(t *testing.B) {
}
func Benchmark_WrapperWriter(t *testing.B) {
log15Logger := log15.New()
gLogger := glog.New()
var buff bytes.Buffer
log15Logger.SetHandler(log15.StreamHandler(&buff, log15.LogfmtFormat()))
gokit := gokit_log.NewLogfmtLogger(NewWrapper(log15Logger))
gLogger.AddLogger(log.NewLogfmtLogger(&buff), "info", map[string]level.Option{})
gokit := NewWrapper(gLogger)
for i := 0; i < t.N; i++ {
_ = level.Info(gokit).Log("msg", "test", "some", "more", "context", "data")
}