@@ -261,6 +261,49 @@ 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+
300+ func TestSugarLnLoggingIgnored (t * testing.T ) {
301+ withSugar (t , WarnLevel , nil , func (logger * SugaredLogger , logs * observer.ObservedLogs ) {
302+ logger .Infoln ("hello" )
303+ assert .Zero (t , logs .Len (), "Expected zero log statements." )
304+ })
305+ }
306+
264307func TestSugarPanicLogging (t * testing.T ) {
265308 tests := []struct {
266309 loggerLevel zapcore.Level
@@ -276,6 +319,9 @@ func TestSugarPanicLogging(t *testing.T) {
276319 {FatalLevel , func (s * SugaredLogger ) { s .Panicw ("foo" ) }, "" },
277320 {PanicLevel , func (s * SugaredLogger ) { s .Panicw ("foo" ) }, "foo" },
278321 {DebugLevel , func (s * SugaredLogger ) { s .Panicw ("foo" ) }, "foo" },
322+ {FatalLevel , func (s * SugaredLogger ) { s .Panicln ("foo" ) }, "" },
323+ {PanicLevel , func (s * SugaredLogger ) { s .Panicln ("foo" ) }, "foo" },
324+ {DebugLevel , func (s * SugaredLogger ) { s .Panicln ("foo" ) }, "foo" },
279325 }
280326
281327 for _ , tt := range tests {
@@ -308,6 +354,9 @@ func TestSugarFatalLogging(t *testing.T) {
308354 {FatalLevel + 1 , func (s * SugaredLogger ) { s .Fatalw ("foo" ) }, "" },
309355 {FatalLevel , func (s * SugaredLogger ) { s .Fatalw ("foo" ) }, "foo" },
310356 {DebugLevel , func (s * SugaredLogger ) { s .Fatalw ("foo" ) }, "foo" },
357+ {FatalLevel + 1 , func (s * SugaredLogger ) { s .Fatalln ("foo" ) }, "" },
358+ {FatalLevel , func (s * SugaredLogger ) { s .Fatalln ("foo" ) }, "foo" },
359+ {DebugLevel , func (s * SugaredLogger ) { s .Fatalln ("foo" ) }, "foo" },
311360 }
312361
313362 for _ , tt := range tests {
@@ -385,10 +434,34 @@ func TestSugarWithOptionsIncreaseLevel(t *testing.T) {
385434 })
386435}
387436
437+ func TestSugarLnWithOptionsIncreaseLevel (t * testing.T ) {
438+ withSugar (t , DebugLevel , nil , func (logger * SugaredLogger , logs * observer.ObservedLogs ) {
439+ logger = logger .WithOptions (IncreaseLevel (WarnLevel ))
440+ logger .Infoln ("logger.Infoln" )
441+ logger .Warnln ("logger.Warnln" )
442+ logger .Errorln ("logger.Errorln" )
443+ require .Equal (t , 2 , logs .Len (), "expected only warn + error logs due to IncreaseLevel." )
444+ assert .Equal (
445+ t ,
446+ logs .AllUntimed ()[0 ].Message ,
447+ "logger.Warnln" ,
448+ "Expected first logged message to be warn level message" ,
449+ )
450+ })
451+ }
452+
388453func BenchmarkSugarSingleStrArg (b * testing.B ) {
389454 withSugar (b , InfoLevel , nil /* opts* */ , func (log * SugaredLogger , logs * observer.ObservedLogs ) {
390455 for i := 0 ; i < b .N ; i ++ {
391456 log .Info ("hello world" )
392457 }
393458 })
394459}
460+
461+ func BenchmarkLnSugarSingleStrArg (b * testing.B ) {
462+ withSugar (b , InfoLevel , nil /* opts* */ , func (log * SugaredLogger , logs * observer.ObservedLogs ) {
463+ for i := 0 ; i < b .N ; i ++ {
464+ log .Infoln ("hello world" )
465+ }
466+ })
467+ }
0 commit comments