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  }