Skip to content

Commit 4f7bae6

Browse files
Scott Leppermarefr
andauthored
get log level (#435)
* get log level Co-authored-by: Marcus Efraimsson <[email protected]>
1 parent 2b635e7 commit 4f7bae6

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

backend/log/log.go

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,37 @@ import (
55
hclog "github.com/hashicorp/go-hclog"
66
)
77

8+
type Level int32
9+
10+
const (
11+
NoLevel Level = iota
12+
Trace
13+
Debug
14+
Info
15+
Warn
16+
Error
17+
)
18+
819
// Logger is the main Logger interface.
920
type Logger interface {
1021
Debug(msg string, args ...interface{})
1122
Info(msg string, args ...interface{})
1223
Warn(msg string, args ...interface{})
1324
Error(msg string, args ...interface{})
25+
Level() Level
1426
}
1527

1628
// New creates a new logger.
1729
func New() Logger {
30+
return NewWithLevel(Debug)
31+
}
32+
33+
// NewWithLevel creates a new logger at the Level defined.
34+
func NewWithLevel(level Level) Logger {
1835
return &hclogWrapper{
1936
logger: hclog.New(&hclog.LoggerOptions{
2037
// Use debug as level since anything less severe is suppressed.
21-
Level: hclog.Debug,
38+
Level: hclog.Level(level),
2239
// Use JSON format to make the output in Grafana format and work
2340
// when using multiple arguments such as Debug("message", "key", "value").
2441
JSONFormat: true,
@@ -46,5 +63,24 @@ func (l *hclogWrapper) Error(msg string, args ...interface{}) {
4663
l.logger.Error(msg, args...)
4764
}
4865

66+
func (l *hclogWrapper) Level() Level {
67+
if l.logger.IsDebug() {
68+
return Debug
69+
}
70+
if l.logger.IsTrace() {
71+
return Trace
72+
}
73+
if l.logger.IsInfo() {
74+
return Info
75+
}
76+
if l.logger.IsWarn() {
77+
return Warn
78+
}
79+
if l.logger.IsError() {
80+
return Error
81+
}
82+
return NoLevel
83+
}
84+
4985
// DefaultLogger is the default logger.
5086
var DefaultLogger = New()

backend/log/log_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package log_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestLogLevel(t *testing.T) {
11+
logger := log.New()
12+
level := logger.Level()
13+
assert.Equal(t, level, log.Debug)
14+
}
15+
16+
func TestLogLevelWarn(t *testing.T) {
17+
logger := log.NewWithLevel(log.Warn)
18+
level := logger.Level()
19+
assert.Equal(t, level, log.Warn)
20+
}

0 commit comments

Comments
 (0)