|
|
@@ -5,6 +5,7 @@ import ( |
|
|
|
"fmt" |
|
|
|
"github.com/aliyun/aliyun-log-go-sdk/producer" |
|
|
|
"golib.gaore.com/GaoreGo/grlogs/logs" |
|
|
|
"runtime" |
|
|
|
"time" |
|
|
|
) |
|
|
|
|
|
|
@@ -40,7 +41,10 @@ func (a *alilsLogger) Init(jsonconfig string) error { |
|
|
|
producerConfig.AccessKeyID = a.KeyID |
|
|
|
producerConfig.AccessKeySecret = a.KeySecret |
|
|
|
producerConfig.LingerMs = 100 |
|
|
|
producerConfig.AllowLogLevel = "error" |
|
|
|
producerConfig.NoRetryStatusCodeList = []int{-1} |
|
|
|
producerConfig.Retries = 2 |
|
|
|
producerConfig.AllowLogLevel = "err" |
|
|
|
producerConfig.MaxIoWorkerCount = int64(runtime.NumCPU()) |
|
|
|
a.producer = producer.InitProducer(producerConfig) |
|
|
|
a.callback = &Callback{} |
|
|
|
a.producer.Start() |
|
|
@@ -62,12 +66,19 @@ func (a *alilsLogger) WriteMsg(when time.Time, msg string, level int, lable stri |
|
|
|
|
|
|
|
log := producer.GenerateLog(uint32(when.Unix()), vals) |
|
|
|
|
|
|
|
for _, topic := range a.Topics { |
|
|
|
if err := a.producer.SendLog(a.Project, a.LogStore, topic, a.Source, log); err != nil { |
|
|
|
return err |
|
|
|
if env == "dev" || env == "test" { |
|
|
|
for _, topic := range a.Topics { |
|
|
|
if err := a.producer.SendLogWithCallBack(a.Project, a.LogStore, topic, a.Source, log, a.callback); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
for _, topic := range a.Topics { |
|
|
|
if err := a.producer.SendLog(a.Project, a.LogStore, topic, a.Source, log); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|