github.com/cilium/cilium@v1.16.2/pkg/logging/logging_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package logging 5 6 import ( 7 "reflect" 8 "testing" 9 "time" 10 11 "github.com/sirupsen/logrus" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestGetLogLevel(t *testing.T) { 16 opts := LogOptions{} 17 18 // case doesn't matter with log options 19 opts[LevelOpt] = "DeBuG" 20 require.Equal(t, opts.GetLogLevel(), logrus.DebugLevel) 21 22 opts[LevelOpt] = "Invalid" 23 require.Equal(t, opts.GetLogLevel(), DefaultLogLevel) 24 } 25 26 func TestGetLogFormat(t *testing.T) { 27 opts := LogOptions{} 28 29 // case doesn't matter with log options 30 opts[FormatOpt] = "JsOn" 31 require.Equal(t, LogFormatJSON, opts.GetLogFormat()) 32 33 opts[FormatOpt] = "Invalid" 34 require.Equal(t, DefaultLogFormatTimestamp, opts.GetLogFormat()) 35 36 opts[FormatOpt] = "JSON-TS" 37 require.Equal(t, LogFormatJSONTimestamp, opts.GetLogFormat()) 38 } 39 40 func TestSetLogLevel(t *testing.T) { 41 oldLevel := DefaultLogger.GetLevel() 42 defer DefaultLogger.SetLevel(oldLevel) 43 44 SetLogLevel(logrus.TraceLevel) 45 require.Equal(t, logrus.TraceLevel, DefaultLogger.GetLevel()) 46 } 47 48 func TestSetDefaultLogLevel(t *testing.T) { 49 oldLevel := DefaultLogger.GetLevel() 50 defer DefaultLogger.SetLevel(oldLevel) 51 52 SetDefaultLogLevel() 53 require.Equal(t, DefaultLogLevel, DefaultLogger.GetLevel()) 54 } 55 56 func TestSetLogFormat(t *testing.T) { 57 oldFormatter := DefaultLogger.Formatter 58 defer DefaultLogger.SetFormatter(oldFormatter) 59 60 SetLogFormat(LogFormatJSON) 61 require.Equal(t, "*logrus.JSONFormatter", reflect.TypeOf(DefaultLogger.Formatter).String()) 62 63 SetLogFormat(LogFormatJSONTimestamp) 64 require.Equal(t, "*logrus.JSONFormatter", reflect.TypeOf(DefaultLogger.Formatter).String()) 65 require.False(t, DefaultLogger.Formatter.(*logrus.JSONFormatter).DisableTimestamp) 66 require.Equal(t, time.RFC3339Nano, DefaultLogger.Formatter.(*logrus.JSONFormatter).TimestampFormat) 67 } 68 69 func TestSetDefaultLogFormat(t *testing.T) { 70 oldFormatter := DefaultLogger.Formatter 71 defer DefaultLogger.SetFormatter(oldFormatter) 72 73 SetDefaultLogFormat() 74 require.Equal(t, "*logrus.TextFormatter", reflect.TypeOf(DefaultLogger.Formatter).String()) 75 } 76 77 func TestSetupLogging(t *testing.T) { 78 oldLevel := DefaultLogger.GetLevel() 79 defer DefaultLogger.SetLevel(oldLevel) 80 81 // Validates that we configure the DefaultLogger correctly 82 logOpts := LogOptions{ 83 "format": "json", 84 "level": "error", 85 } 86 87 SetupLogging([]string{}, logOpts, "", false) 88 require.Equal(t, logrus.ErrorLevel, DefaultLogger.GetLevel()) 89 require.Equal(t, "*logrus.JSONFormatter", reflect.TypeOf(DefaultLogger.Formatter).String()) 90 91 // Validate that the 'debug' flag/arg overrides the logOptions 92 SetupLogging([]string{}, logOpts, "", true) 93 require.Equal(t, logrus.DebugLevel, DefaultLogger.GetLevel()) 94 }