github.com/snowflakedb/gosnowflake@v1.9.0/cmd/logger/logger.go (about)

     1  package main
     2  
     3  import (
     4  	"bytes"
     5  	rlog "github.com/sirupsen/logrus"
     6  	sf "github.com/snowflakedb/gosnowflake"
     7  	"log"
     8  	"strings"
     9  )
    10  
    11  type testLogger struct {
    12  	*rlog.Logger
    13  }
    14  
    15  func (log *testLogger) SetLogLevel(level string) error {
    16  	actualLevel, err := rlog.ParseLevel(level)
    17  	if err != nil {
    18  		return err
    19  	}
    20  	log.Level = actualLevel
    21  	return nil
    22  }
    23  
    24  func createTestLogger() testLogger {
    25  	var logging = testLogger{rlog.New()}
    26  	var formatter = rlog.JSONFormatter{CallerPrettyfier: sf.SFCallerPrettyfier}
    27  	logging.SetReportCaller(true)
    28  	logging.SetFormatter(&formatter)
    29  	return logging
    30  }
    31  
    32  func main() {
    33  	buf := &bytes.Buffer{}
    34  	buf2 := &bytes.Buffer{}
    35  
    36  	var mylog = sf.GetLogger()
    37  	mylog.SetOutput(buf)
    38  	mylog.Info("Hello I am default")
    39  	mylog.Info("Hello II amm default")
    40  	mylog.Debug("Default I am debug NOT SHOWN")
    41  	mylog.SetLogLevel("debug")
    42  	mylog.Debug("Default II amm debug TO SHOW")
    43  
    44  	var testlog = sf.CreateDefaultLogger()
    45  	testlog.SetLogLevel("debug")
    46  	testlog.SetOutput(buf)
    47  	testlog.SetOutput(buf2)
    48  	sf.SetLogger(&testlog)
    49  
    50  	var mylog2 = (sf.GetLogger()).(sf.SFLogger)
    51  	mylog2.Debug("test debug log is shown")
    52  	mylog2.SetLogLevel("info")
    53  	mylog2.Debug("test debug log is not shownII")
    54  	log.Print("Expect all true values:")
    55  
    56  	// verify logger switch
    57  	var strbuf = buf.String()
    58  	log.Printf("%t:%t:%t:%t", strings.Contains(strbuf, "I am default"),
    59  		strings.Contains(strbuf, "II amm default"),
    60  		!strings.Contains(strbuf, "test debug log is shown"),
    61  		strings.Contains(buf2.String(), "test debug log is shown"))
    62  
    63  	// verify log level switch
    64  	log.Printf("%t:%t:%t:%t", !strings.Contains(strbuf, "Default I am debug NOT SHOWN"),
    65  		strings.Contains(strbuf, "Default II amm debug TO SHOW"),
    66  		strings.Contains(buf2.String(), "test debug log is shown"),
    67  		!strings.Contains(buf2.String(), "test debug log is not shownII"))
    68  
    69  }