12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package hiedabke_alisls
- import (
- "git.swzry.com/zry/GoHiedaLogger/hiedalog"
- "github.com/aliyun/aliyun-log-go-sdk/producer"
- "strconv"
- "time"
- )
- type HiedaBackendAliSLS struct {
- prod *producer.Producer
- proj string
- logstore string
- topic string
- hostname string
- appname string
- srcip string
- }
- func (b *HiedaBackendAliSLS) EmitStringLog(module string, level hiedalog.HiedaLogLevel, content string) {
- e := b.generateStringLogEntity(module, level, content)
- b.emitLogToSLS(e)
- }
- func (b *HiedaBackendAliSLS) EmitComplexLog(module string, level hiedalog.HiedaLogLevel, data map[string]string) {
- e := b.generateComplexLogEntity(module, level, data)
- b.emitLogToSLS(e)
- }
- func (l *HiedaBackendAliSLS) generateStringLogEntity(module string, level hiedalog.HiedaLogLevel, logcontent string) map[string]string {
- return map[string]string{
- "hostname": l.hostname,
- "app": l.appname,
- "module": module,
- "level_id": strconv.Itoa(int(level.LevelNumber)),
- "level": level.Name,
- "content": logcontent,
- }
- }
- func (l *HiedaBackendAliSLS) generateComplexLogEntity(module string, level hiedalog.HiedaLogLevel, data map[string]string) map[string]string {
- m := map[string]string{
- "hostname": l.hostname,
- "app": l.appname,
- "module": module,
- "level_id": strconv.Itoa(int(level.LevelNumber)),
- "level": level.Name,
- }
- for k, v := range data {
- m[k] = v
- }
- return m
- }
- func (l *HiedaBackendAliSLS) emitLogToSLS(entity map[string]string) {
- log := producer.GenerateLog(uint32(time.Now().Unix()), entity)
- _ = l.prod.SendLog(l.proj, l.logstore, l.topic, l.srcip, log)
- }
- func (l *HiedaBackendAliSLS) StartProducer() {
- l.prod.Start()
- }
- func (l *HiedaBackendAliSLS) StopProducer(timeout_ms int64) error {
- return l.prod.Close(timeout_ms)
- }
- func (l *HiedaBackendAliSLS) SafeStopProducer() {
- l.prod.SafeClose()
- }
|