mirror of https://github.com/grafana/grafana
Backend plugins: Log wrapper args formatting (#20514)
Backend plugins is recommended to use hclog with json formatting to get proper log output in grafana server log. Old hclog-wrapper.go that I deleted while back is still in the repo so deletes that.pull/20521/head
parent
ec18e2bfc3
commit
58b7958952
@ -0,0 +1,29 @@ |
||||
package backendplugin |
||||
|
||||
import ( |
||||
"fmt" |
||||
"testing" |
||||
"time" |
||||
|
||||
"github.com/stretchr/testify/assert" |
||||
) |
||||
|
||||
func TestLogWrapper(t *testing.T) { |
||||
tcs := []struct { |
||||
args []interface{} |
||||
expectedResult []interface{} |
||||
}{ |
||||
{args: []interface{}{}, expectedResult: []interface{}{}}, |
||||
{args: []interface{}{"1", "2", "3"}, expectedResult: []interface{}{"1", "2", "3"}}, |
||||
{args: []interface{}{"1", "2"}, expectedResult: []interface{}{"1", "2"}}, |
||||
{args: []interface{}{"1", "2", "timestamp", time.Now()}, expectedResult: []interface{}{"1", "2"}}, |
||||
{args: []interface{}{"1", "2", "timestamp", time.Now(), "3", "4"}, expectedResult: []interface{}{"1", "2", "3", "4"}}, |
||||
} |
||||
|
||||
for i, tc := range tcs { |
||||
t.Run(fmt.Sprintf("formatArgs testcase %d", i), func(t *testing.T) { |
||||
res := formatArgs(tc.args...) |
||||
assert.Exactly(t, tc.expectedResult, res) |
||||
}) |
||||
} |
||||
} |
||||
@ -1,58 +0,0 @@ |
||||
package plugins |
||||
|
||||
import ( |
||||
"io" |
||||
"io/ioutil" |
||||
"log" |
||||
|
||||
glog "github.com/grafana/grafana/pkg/infra/log" |
||||
hclog "github.com/hashicorp/go-hclog" |
||||
) |
||||
|
||||
type LogWrapper struct { |
||||
Logger glog.Logger |
||||
} |
||||
|
||||
func (lw LogWrapper) Trace(msg string, args ...interface{}) { |
||||
lw.Logger.Debug(msg, args...) |
||||
} |
||||
func (lw LogWrapper) Debug(msg string, args ...interface{}) { |
||||
lw.Logger.Debug(msg, args...) |
||||
} |
||||
func (lw LogWrapper) Info(msg string, args ...interface{}) { |
||||
lw.Logger.Info(msg, args...) |
||||
} |
||||
func (lw LogWrapper) Warn(msg string, args ...interface{}) { |
||||
lw.Logger.Warn(msg, args...) |
||||
} |
||||
func (lw LogWrapper) Error(msg string, args ...interface{}) { |
||||
lw.Logger.Error(msg, args...) |
||||
} |
||||
|
||||
func (lw LogWrapper) IsTrace() bool { return true } |
||||
func (lw LogWrapper) IsDebug() bool { return true } |
||||
func (lw LogWrapper) IsInfo() bool { return true } |
||||
func (lw LogWrapper) IsWarn() bool { return true } |
||||
func (lw LogWrapper) IsError() bool { return true } |
||||
|
||||
func (lw LogWrapper) With(args ...interface{}) hclog.Logger { |
||||
return LogWrapper{Logger: lw.Logger.New(args...)} |
||||
} |
||||
func (lw LogWrapper) Named(name string) hclog.Logger { |
||||
return LogWrapper{Logger: lw.Logger.New()} |
||||
} |
||||
|
||||
func (lw LogWrapper) ResetNamed(name string) hclog.Logger { |
||||
return LogWrapper{Logger: lw.Logger.New()} |
||||
} |
||||
|
||||
func (lw LogWrapper) StandardLogger(ops *hclog.StandardLoggerOptions) *log.Logger { |
||||
return nil |
||||
} |
||||
|
||||
func (lw LogWrapper) SetLevel(level hclog.Level) {} |
||||
|
||||
// Return a value that conforms to io.Writer, which can be passed into log.SetOutput()
|
||||
func (lw LogWrapper) StandardWriter(opts *hclog.StandardLoggerOptions) io.Writer { |
||||
return ioutil.Discard |
||||
} |
||||
Loading…
Reference in new issue