@@ -549,7 +549,11 @@ func TestLevelWriter(t *testing.T) {
549
549
p string
550
550
}{},
551
551
}
552
- log := New (lw )
552
+
553
+ // Allow extra-verbose logs.
554
+ SetGlobalLevel (TraceLevel - 1 )
555
+ log := New (lw ).Level (TraceLevel - 1 )
556
+
553
557
log .Trace ().Msg ("0" )
554
558
log .Debug ().Msg ("1" )
555
559
log .Info ().Msg ("2" )
@@ -562,6 +566,9 @@ func TestLevelWriter(t *testing.T) {
562
566
log .WithLevel (WarnLevel ).Msg ("8" )
563
567
log .WithLevel (ErrorLevel ).Msg ("9" )
564
568
log .WithLevel (NoLevel ).Msg ("nolevel-2" )
569
+ log .WithLevel (- 1 ).Msg ("-1" ) // Same as TraceLevel
570
+ log .WithLevel (- 2 ).Msg ("-2" ) // Will log
571
+ log .WithLevel (- 3 ).Msg ("-3" ) // Will not log
565
572
566
573
want := []struct {
567
574
l Level
@@ -579,6 +586,8 @@ func TestLevelWriter(t *testing.T) {
579
586
{WarnLevel , `{"level":"warn","message":"8"}` + "\n " },
580
587
{ErrorLevel , `{"level":"error","message":"9"}` + "\n " },
581
588
{NoLevel , `{"message":"nolevel-2"}` + "\n " },
589
+ {Level (- 1 ), `{"level":"trace","message":"-1"}` + "\n " },
590
+ {Level (- 2 ), `{"level":"-2","message":"-2"}` + "\n " },
582
591
}
583
592
if got := lw .ops ; ! reflect .DeepEqual (got , want ) {
584
593
t .Errorf ("invalid ops:\n got:\n %v\n want:\n %v" , got , want )
@@ -853,6 +862,9 @@ func TestParseLevel(t *testing.T) {
853
862
{"panic" , args {"panic" }, PanicLevel , false },
854
863
{"disabled" , args {"disabled" }, Disabled , false },
855
864
{"nolevel" , args {"" }, NoLevel , false },
865
+ {"-1" , args {"-1" }, TraceLevel , false },
866
+ {"-2" , args {"-2" }, Level (- 2 ), false },
867
+ {"-3" , args {"-3" }, Level (- 3 ), false },
856
868
}
857
869
for _ , tt := range tests {
858
870
t .Run (tt .name , func (t * testing.T ) {
0 commit comments