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 }