1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
package log
import (
"testing"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
)
func TestGRPCLogrusLevelTranslation(t *testing.T) {
logger := logrus.New()
wrapped := logrusWrapper{Entry: logrus.NewEntry(logger)}
for _, tc := range []struct {
level logrus.Level
grpcLevel int
}{
{
level: logrus.InfoLevel,
grpcLevel: 0,
},
{
level: logrus.WarnLevel,
grpcLevel: 1,
},
{
level: logrus.ErrorLevel,
grpcLevel: 2,
},
{
level: logrus.FatalLevel,
grpcLevel: 3,
},
// these don't translate to valid grpc log levels, but should still work
{
level: logrus.DebugLevel,
grpcLevel: -1,
},
{
level: logrus.PanicLevel,
grpcLevel: 4,
},
} {
logger.SetLevel(tc.level)
for i := -1; i < 5; i++ {
verbosityAtLeastI := wrapped.V(i)
require.Equal(t, i <= tc.grpcLevel, verbosityAtLeastI,
"Is verbosity at least %d? Logrus level at %v", i, tc.level)
}
}
// these values should also always work, even though they're not valid grpc log values
logrus.SetLevel(logrus.DebugLevel)
require.True(t, wrapped.V(-100))
logrus.SetLevel(logrus.PanicLevel)
require.False(t, wrapped.V(100))
}
|