github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/logging/logconfig/presets/instructions_test.go (about) 1 package presets 2 3 import ( 4 "testing" 5 6 "strconv" 7 8 "github.com/hyperledger/burrow/logging/logconfig" 9 "github.com/hyperledger/burrow/logging/loggers" 10 "github.com/hyperledger/burrow/logging/structure" 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestBuildSinkConfig(t *testing.T) { 16 builtSink, err := BuildSinkConfig(IncludeAny, Info, Stdout, Terminal, Down, Down, Info, Stdout, Up, Info, Stderr) 17 require.NoError(t, err) 18 expectedSink := logconfig.Sink(). 19 SetTransform(logconfig.FilterTransform(logconfig.IncludeWhenAnyMatches, 20 structure.ChannelKey, structure.InfoChannelName)).SetOutput(logconfig.StdoutOutput().SetFormat(loggers.TerminalFormat)).AddSinks( 21 logconfig.Sink().SetTransform(logconfig.FilterTransform(logconfig.NoFilterMode, 22 structure.ChannelKey, structure.InfoChannelName)).SetOutput(logconfig.StderrOutput()).AddSinks( 23 logconfig.Sink().SetTransform(logconfig.FilterTransform(logconfig.NoFilterMode, 24 structure.ChannelKey, structure.InfoChannelName)).SetOutput(logconfig.StdoutOutput()))) 25 26 //fmt.Println(config.JSONString(expectedSink), "\n", config.JSONString(builtSink)) 27 assert.Equal(t, logconfig.JSONString(expectedSink), logconfig.JSONString(builtSink)) 28 } 29 30 func TestMinimalPreset(t *testing.T) { 31 builtSink, err := BuildSinkConfig(Minimal, Stderr) 32 require.NoError(t, err) 33 expectedSink := logconfig.Sink(). 34 AddSinks(logconfig.Sink().SetTransform(logconfig.PruneTransform(structure.TraceKey, structure.RunId)). 35 AddSinks(logconfig.Sink().SetTransform(logconfig.FilterTransform(logconfig.IncludeWhenAllMatch, 36 structure.ChannelKey, structure.InfoChannelName)). 37 AddSinks(logconfig.Sink().SetTransform(logconfig.FilterTransform(logconfig.ExcludeWhenAnyMatches, 38 structure.ComponentKey, "Tendermint", 39 "module", "p2p", 40 "module", "mempool")).SetOutput(logconfig.StderrOutput())))) 41 //fmt.Println(config.TOMLString(expectedSink), "\n", config.TOMLString(builtSink)) 42 assert.Equal(t, logconfig.TOMLString(expectedSink), logconfig.TOMLString(builtSink)) 43 } 44 45 func TestFileOutput(t *testing.T) { 46 path := "foo.log" 47 builtSink, err := BuildSinkConfig(Down, File, path, JSON) 48 require.NoError(t, err) 49 expectedSink := logconfig.Sink(). 50 AddSinks(logconfig.Sink().SetOutput(logconfig.FileOutput(path).SetFormat(loggers.JSONFormat))) 51 //fmt.Println(config.TOMLString(expectedSink), "\n", config.TOMLString(builtSink)) 52 assert.Equal(t, logconfig.TOMLString(expectedSink), logconfig.TOMLString(builtSink)) 53 } 54 55 func TestCaptureLoggerNormalLogger(t *testing.T) { 56 path := "/dev/termination-log" 57 name := "hello" 58 buffer := 10000 59 builtSink, err := BuildSinkConfig(Capture, name, strconv.Itoa(buffer), File, path, JSON, Top, IncludeAny, Info, Stderr, JSON) 60 require.NoError(t, err) 61 expectedSink := logconfig.Sink(). 62 AddSinks( 63 logconfig.Sink().SetTransform(logconfig.CaptureTransform(name, buffer, false)). 64 SetOutput(logconfig.FileOutput(path).SetFormat(loggers.JSONFormat)), 65 logconfig.Sink().SetTransform(logconfig.FilterTransform(logconfig.IncludeWhenAnyMatches, 66 structure.ChannelKey, structure.InfoChannelName)).SetOutput(logconfig.StderrOutput(). 67 SetFormat(loggers.JSONFormat))) 68 assert.Equal(t, logconfig.TOMLString(expectedSink), logconfig.TOMLString(builtSink)) 69 }