Merge pull request #13 from tendermint/feature/filter-returns-error
[log] NewFilterByLevel returns an error
This commit is contained in:
commit
8f5a175ff4
|
@ -17,7 +17,8 @@ func NewFilter(next Logger, options ...Option) Logger {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFilterByLevel wraps next and implements filtering based on a given level.
|
// NewFilterByLevel wraps next and implements filtering based on a given level.
|
||||||
func NewFilterByLevel(next Logger, lvl string) Logger {
|
// Error is returned if level is not info, error or debug.
|
||||||
|
func NewFilterByLevel(next Logger, lvl string) (Logger, error) {
|
||||||
var option Option
|
var option Option
|
||||||
switch lvl {
|
switch lvl {
|
||||||
case "info":
|
case "info":
|
||||||
|
@ -27,9 +28,9 @@ func NewFilterByLevel(next Logger, lvl string) Logger {
|
||||||
case "error":
|
case "error":
|
||||||
option = AllowError()
|
option = AllowError()
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("Expected either \"info\", \"debug\" or \"error\" log level, given %v", lvl))
|
return nil, fmt.Errorf("Expected either \"info\", \"debug\" or \"error\" log level, given %v", lvl)
|
||||||
}
|
}
|
||||||
return NewFilter(next, option)
|
return NewFilter(next, option), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type filter struct {
|
type filter struct {
|
||||||
|
|
|
@ -6,7 +6,6 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/tendermint/tmlibs/log"
|
"github.com/tendermint/tmlibs/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -110,13 +109,12 @@ func TestLevelContext(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewFilterByLevel(t *testing.T) {
|
func TestNewFilterByLevel(t *testing.T) {
|
||||||
assert := assert.New(t)
|
|
||||||
var logger log.Logger
|
var logger log.Logger
|
||||||
logger = log.NewNopLogger()
|
logger = log.NewNopLogger()
|
||||||
assert.NotPanics(func() {
|
if _, err := log.NewFilterByLevel(logger, "info"); err != nil {
|
||||||
logger = log.NewFilterByLevel(logger, "info")
|
t.Fatal(err)
|
||||||
})
|
}
|
||||||
assert.Panics(func() {
|
if _, err := log.NewFilterByLevel(logger, "other"); err == nil {
|
||||||
logger = log.NewFilterByLevel(logger, "smth")
|
t.Fatal(err)
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue