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