mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
55 lines
1.2 KiB
Go
55 lines
1.2 KiB
Go
package grafanaapiserver
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/go-logr/logr"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
)
|
|
|
|
var _ logr.LogSink = (*logAdapter)(nil)
|
|
|
|
type logAdapter struct {
|
|
level int
|
|
log log.Logger
|
|
}
|
|
|
|
func newLogAdapter(level int) *logAdapter {
|
|
return &logAdapter{log: log.New("grafana-apiserver"), level: level}
|
|
}
|
|
|
|
func (l *logAdapter) WithName(name string) logr.LogSink {
|
|
l.log = l.log.New("name", name)
|
|
return l
|
|
}
|
|
|
|
func (l *logAdapter) WithValues(keysAndValues ...any) logr.LogSink {
|
|
l.log = l.log.New(keysAndValues...)
|
|
return l
|
|
}
|
|
|
|
func (l *logAdapter) Init(_ logr.RuntimeInfo) {
|
|
// we aren't using the logr library for logging, so this is a no-op
|
|
}
|
|
|
|
func (l *logAdapter) Enabled(level int) bool {
|
|
return level <= l.level
|
|
}
|
|
|
|
func (l *logAdapter) Info(level int, msg string, keysAndValues ...any) {
|
|
msg = strings.TrimSpace(msg)
|
|
// kubernetes uses level 0 for critical messages, so map that to Info
|
|
if level == 0 {
|
|
l.log.Info(msg, keysAndValues...)
|
|
return
|
|
}
|
|
// every other level is mapped to Debug
|
|
l.log.Debug(msg, keysAndValues...)
|
|
}
|
|
|
|
func (l *logAdapter) Error(err error, msg string, keysAndValues ...any) {
|
|
msg = strings.TrimSpace(msg)
|
|
l.log.Error(msg, keysAndValues...)
|
|
}
|