github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/logger/logger.go (about) 1 package logger 2 3 import ( 4 "github.com/evalphobia/logrus_sentry" 5 "github.com/unicornultrafoundation/go-u2u/log" 6 ) 7 8 // init with defaults. 9 func init() { 10 log.Root().SetHandler( 11 log.CallerStackHandler("%v", log.StdoutHandler)) 12 } 13 14 // SetDSN appends sentry hook to log root handler. 15 func SetDSN(value string) { 16 // If DSN is empty, we don't create new hook. 17 // Otherwise we'll the same error message for each new log. 18 if value == "" { 19 log.Warn("Sentry client DSN is empty") 20 return 21 } 22 23 // TODO: find or make sentry log.Handler without logrus. 24 sentry, err := logrus_sentry.NewSentryHook(value, nil) 25 if err != nil { 26 log.Warn("Probably Sentry host is not running", "err", err) 27 return 28 } 29 30 log.Root().SetHandler( 31 log.MultiHandler( 32 log.Root().GetHandler(), 33 LogrusHandler(sentry), 34 )) 35 } 36 37 // SetLevel sets level filter on log root handler. 38 // So it should be called last. 39 func SetLevel(l string) { 40 lvl, err := log.LvlFromString(l) 41 if err != nil { 42 panic(err) 43 } 44 45 log.Root().SetHandler( 46 log.LvlFilterHandler( 47 lvl, 48 log.Root().GetHandler())) 49 }