github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/log.go (about) 1 package util 2 3 import ( 4 "fmt" 5 "os" 6 "strings" 7 8 "github.com/go-kit/log" 9 "github.com/go-kit/log/level" 10 ) 11 12 type LogAdapter struct { 13 log.Logger 14 } 15 16 func NewLogAdapter(l log.Logger) LogAdapter { 17 return LogAdapter{ 18 Logger: l, 19 } 20 } 21 22 // Fatal implements tail.logger 23 func (l LogAdapter) Fatal(v ...interface{}) { 24 level.Error(l).Log("msg", fmt.Sprint(v...)) 25 os.Exit(1) 26 } 27 28 // Fatalf implements tail.logger 29 func (l LogAdapter) Fatalf(format string, v ...interface{}) { 30 level.Error(l).Log("msg", fmt.Sprintf(strings.TrimSuffix(format, "\n"), v...)) 31 os.Exit(1) 32 } 33 34 // Fatalln implements tail.logger 35 func (l LogAdapter) Fatalln(v ...interface{}) { 36 level.Error(l).Log("msg", fmt.Sprint(v...)) 37 os.Exit(1) 38 } 39 40 // Panic implements tail.logger 41 func (l LogAdapter) Panic(v ...interface{}) { 42 s := fmt.Sprint(v...) 43 level.Error(l).Log("msg", s) 44 panic(s) 45 } 46 47 // Panicf implements tail.logger 48 func (l LogAdapter) Panicf(format string, v ...interface{}) { 49 s := fmt.Sprintf(strings.TrimSuffix(format, "\n"), v...) 50 level.Error(l).Log("msg", s) 51 panic(s) 52 } 53 54 // Panicln implements tail.logger 55 func (l LogAdapter) Panicln(v ...interface{}) { 56 s := fmt.Sprint(v...) 57 level.Error(l).Log("msg", s) 58 panic(s) 59 } 60 61 // Print implements tail.logger 62 func (l LogAdapter) Print(v ...interface{}) { 63 level.Info(l).Log("msg", fmt.Sprint(v...)) 64 } 65 66 // Printf implements tail.logger 67 func (l LogAdapter) Printf(format string, v ...interface{}) { 68 level.Info(l).Log("msg", fmt.Sprintf(strings.TrimSuffix(format, "\n"), v...)) 69 } 70 71 // Println implements tail.logger 72 func (l LogAdapter) Println(v ...interface{}) { 73 level.Info(l).Log("msg", fmt.Sprint(v...)) 74 } 75 76 // TODO(dannyk): remove once weaveworks/common updates to go-kit/log 77 // -> we can then revert to using Level.Gokit 78 func LogFilter(l string) level.Option { 79 switch l { 80 case "debug": 81 return level.AllowDebug() 82 case "info": 83 return level.AllowInfo() 84 case "warn": 85 return level.AllowWarn() 86 case "error": 87 return level.AllowError() 88 default: 89 return level.AllowAll() 90 } 91 }