github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/catgo/cat-go/cat/cat_api.go (about) 1 package cat 2 3 import ( 4 "time" 5 6 "github.com/artisanhe/tools/catgo/cat-go/message" 7 ) 8 9 func NewTransaction(mtype, name string) message.Transactor { 10 if !IsEnabled() { 11 return &message.NullTransaction{} 12 } 13 return message.NewTransaction(mtype, name, manager.flush) 14 } 15 16 func NewCompletedTransactionWithDuration(mtype, name string, duration time.Duration) { 17 if !IsEnabled() { 18 return 19 } 20 21 var trans = NewTransaction(mtype, name) 22 trans.SetDuration(duration) 23 if duration > 0 && duration < 60*time.Millisecond { 24 trans.SetTime(time.Now().Add(-duration)) 25 } 26 trans.SetStatus(message.CatSuccess) 27 trans.Complete() 28 } 29 30 func NewEvent(mtype, name string) message.Messager { 31 if !IsEnabled() { 32 return &message.NullMessage{} 33 } 34 return message.NewEvent(mtype, name, manager.flush) 35 } 36 37 func LogEvent(mtype, name string, args ...string) { 38 if !IsEnabled() { 39 return 40 } 41 42 var e = NewEvent(mtype, name) 43 if len(args) > 0 { 44 e.SetStatus(args[0]) 45 } 46 if len(args) > 1 { 47 e.SetData(args[1]) 48 } 49 e.Complete() 50 } 51 52 func LogError(err error, args ...string) { 53 if !IsEnabled() { 54 return 55 } 56 57 var category = "CAT_ERROR" 58 59 if len(args) > 0 { 60 category = args[0] 61 } 62 63 LogErrorWithCategory(err, category) 64 } 65 66 func LogErrorWithCategory(err error, category string) { 67 if !IsEnabled() { 68 return 69 } 70 71 var event = NewEvent("Error", category) 72 var buf = newStacktrace(2, err) 73 event.SetStatus(message.CatError) 74 event.SetData(buf.String()) 75 event.Complete() 76 } 77 78 func LogMetricForCount(name string, args ...int) { 79 if !IsEnabled() { 80 return 81 } 82 if len(args) == 0 { 83 aggregator.metric.AddCount(name, 1) 84 } else { 85 aggregator.metric.AddCount(name, args[0]) 86 } 87 } 88 89 func LogMetricForDuration(name string, duration time.Duration) { 90 if !IsEnabled() { 91 return 92 } 93 aggregator.metric.AddDuration(name, duration) 94 } 95 96 func NewMetricHelper(name string) MetricHelper { 97 if !IsEnabled() { 98 return &nullMetricHelper{} 99 } 100 return newMetricHelper(name) 101 }