github.com/argoproj/argo-cd/v3@v3.2.1/util/log/logrus_test.go (about) 1 package log 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/sirupsen/logrus" 8 "github.com/stretchr/testify/assert" 9 10 "github.com/argoproj/argo-cd/v3/common" 11 ) 12 13 func TestCreateFormatter(t *testing.T) { 14 t.Run("log format is json", func(t *testing.T) { 15 result := CreateFormatter("json") 16 assert.Equal(t, &logrus.JSONFormatter{}, result) 17 }) 18 t.Run("log format is text", func(t *testing.T) { 19 t.Run("FORCE_LOG_COLORS == 1", func(t *testing.T) { 20 t.Setenv("FORCE_LOG_COLORS", "1") 21 result := CreateFormatter("text") 22 assert.Equal(t, &logrus.TextFormatter{ForceColors: true}, result) 23 }) 24 t.Run("FORCE_LOG_COLORS != 1", func(t *testing.T) { 25 t.Setenv("FORCE_LOG_COLORS", "0") 26 result := CreateFormatter("text") 27 assert.Equal(t, &logrus.TextFormatter{}, result) 28 }) 29 t.Run(common.EnvLogFormatEnableFullTimestamp+" == 1", func(t *testing.T) { 30 t.Setenv(common.EnvLogFormatEnableFullTimestamp, "1") 31 result := CreateFormatter("text") 32 assert.Equal(t, &logrus.TextFormatter{FullTimestamp: true}, result) 33 }) 34 t.Run(common.EnvLogFormatEnableFullTimestamp+" != 1", func(t *testing.T) { 35 t.Setenv(common.EnvLogFormatEnableFullTimestamp, "0") 36 result := CreateFormatter("text") 37 assert.Equal(t, &logrus.TextFormatter{}, result) 38 }) 39 t.Run(common.EnvLogFormatTimestamp+" is not set", func(t *testing.T) { 40 result := CreateFormatter("text") 41 assert.Equal(t, &logrus.TextFormatter{}, result) 42 }) 43 t.Run(common.EnvLogFormatTimestamp+" is set", func(t *testing.T) { 44 t.Setenv(common.EnvLogFormatTimestamp, time.RFC3339Nano) 45 result := CreateFormatter("text") 46 assert.Equal(t, &logrus.TextFormatter{TimestampFormat: time.RFC3339Nano}, result) 47 }) 48 }) 49 t.Run("log format is not json or text", func(t *testing.T) { 50 result := CreateFormatter("xml") 51 assert.Equal(t, &logrus.JSONFormatter{}, result) 52 }) 53 }