@@ -261,6 +261,42 @@ func TestSugarTemplatedLogging(t *testing.T) {
261261 }
262262}
263263
264+ func TestSugarLnLogging (t * testing.T ) {
265+ tests := []struct {
266+ args []interface {}
267+ expect string
268+ }{
269+ {nil , "" },
270+ {[]interface {}{}, "" },
271+ {[]interface {}{"" }, "" },
272+ {[]interface {}{"foo" }, "foo" },
273+ {[]interface {}{"foo" , "bar" }, "foo bar" },
274+ }
275+
276+ // Common to all test cases.
277+ context := []interface {}{"foo" , "bar" }
278+ expectedFields := []Field {String ("foo" , "bar" )}
279+
280+ for _ , tt := range tests {
281+ withSugar (t , DebugLevel , nil , func (logger * SugaredLogger , logs * observer.ObservedLogs ) {
282+ logger .With (context ... ).Debugln (tt .args ... )
283+ logger .With (context ... ).Infoln (tt .args ... )
284+ logger .With (context ... ).Warnln (tt .args ... )
285+ logger .With (context ... ).Errorln (tt .args ... )
286+ logger .With (context ... ).DPanicln (tt .args ... )
287+
288+ expected := make ([]observer.LoggedEntry , 5 )
289+ for i , lvl := range []zapcore.Level {DebugLevel , InfoLevel , WarnLevel , ErrorLevel , DPanicLevel } {
290+ expected [i ] = observer.LoggedEntry {
291+ Entry : zapcore.Entry {Message : tt .expect , Level : lvl },
292+ Context : expectedFields ,
293+ }
294+ }
295+ assert .Equal (t , expected , logs .AllUntimed (), "Unexpected log output." )
296+ })
297+ }
298+ }
299+
264300func TestSugarPanicLogging (t * testing.T ) {
265301 tests := []struct {
266302 loggerLevel zapcore.Level
@@ -276,6 +312,9 @@ func TestSugarPanicLogging(t *testing.T) {
276312 {FatalLevel , func (s * SugaredLogger ) { s .Panicw ("foo" ) }, "" },
277313 {PanicLevel , func (s * SugaredLogger ) { s .Panicw ("foo" ) }, "foo" },
278314 {DebugLevel , func (s * SugaredLogger ) { s .Panicw ("foo" ) }, "foo" },
315+ {FatalLevel , func (s * SugaredLogger ) { s .Panicln ("foo" ) }, "" },
316+ {PanicLevel , func (s * SugaredLogger ) { s .Panicln ("foo" ) }, "foo" },
317+ {DebugLevel , func (s * SugaredLogger ) { s .Panicln ("foo" ) }, "foo" },
279318 }
280319
281320 for _ , tt := range tests {
@@ -308,6 +347,9 @@ func TestSugarFatalLogging(t *testing.T) {
308347 {FatalLevel + 1 , func (s * SugaredLogger ) { s .Fatalw ("foo" ) }, "" },
309348 {FatalLevel , func (s * SugaredLogger ) { s .Fatalw ("foo" ) }, "foo" },
310349 {DebugLevel , func (s * SugaredLogger ) { s .Fatalw ("foo" ) }, "foo" },
350+ {FatalLevel + 1 , func (s * SugaredLogger ) { s .Fatalln ("foo" ) }, "" },
351+ {FatalLevel , func (s * SugaredLogger ) { s .Fatalln ("foo" ) }, "foo" },
352+ {DebugLevel , func (s * SugaredLogger ) { s .Fatalln ("foo" ) }, "foo" },
311353 }
312354
313355 for _ , tt := range tests {
@@ -385,10 +427,34 @@ func TestSugarWithOptionsIncreaseLevel(t *testing.T) {
385427 })
386428}
387429
430+ func TestSugarLnWithOptionsIncreaseLevel (t * testing.T ) {
431+ withSugar (t , DebugLevel , nil , func (logger * SugaredLogger , logs * observer.ObservedLogs ) {
432+ logger = logger .WithOptions (IncreaseLevel (WarnLevel ))
433+ logger .Infoln ("logger.Infoln" )
434+ logger .Warnln ("logger.Warnln" )
435+ logger .Errorln ("logger.Errorln" )
436+ require .Equal (t , 2 , logs .Len (), "expected only warn + error logs due to IncreaseLevel." )
437+ assert .Equal (
438+ t ,
439+ logs .AllUntimed ()[0 ].Message ,
440+ "logger.Warnln" ,
441+ "Expected first logged message to be warn level message" ,
442+ )
443+ })
444+ }
445+
388446func BenchmarkSugarSingleStrArg (b * testing.B ) {
389447 withSugar (b , InfoLevel , nil /* opts* */ , func (log * SugaredLogger , logs * observer.ObservedLogs ) {
390448 for i := 0 ; i < b .N ; i ++ {
391449 log .Info ("hello world" )
392450 }
393451 })
394452}
453+
454+ func BenchmarkSugarLnSingleStrArg (b * testing.B ) {
455+ withSugar (b , InfoLevel , nil /* opts* */ , func (log * SugaredLogger , logs * observer.ObservedLogs ) {
456+ for i := 0 ; i < b .N ; i ++ {
457+ log .Infoln ("hello world" )
458+ }
459+ })
460+ }
0 commit comments