From 30a9ba339429593c552b31dbbfb4f67ed56ac466 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期一, 24 一月 2022 16:55:28 +0800
Subject: [PATCH] 修改系统日志数据结构
---
logc.go | 94 +++++++++++++++++++++++-----------------------
1 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/logc.go b/logc.go
index 5946d85..515dfc2 100644
--- a/logc.go
+++ b/logc.go
@@ -1,8 +1,7 @@
package logc
import (
- "basic.com/valib/bhomebus.git"
- "encoding/json"
+ "basic.com/valib/c_bhomebus.git/proto/source/bhome_msg"
"fmt"
"sync"
"time"
@@ -17,14 +16,19 @@
)
const (
- TypeManual = iota + 1 //浜哄伐鎿嶄綔鏃ュ織,绯荤粺鍗囩骇,鎽勫儚鏈轰慨鏀�,绠楁硶淇敼...
- TypeLoginOut //鐧诲綍鐧诲嚭鏃ュ織
- TypePollInfo //杞贰鎽勫儚鏈哄強鍏跺搴旂殑绠楁硶
- TypeStackInfo //鏁版嵁鏍堝鐞嗘儏鍐�
- TypeWarnInfo //鏁呴殰淇℃伅
- TypeRunInfo //杩愯鎯呭喌,gpu,mem,cpu
- TypeSysInfo //绯荤粺鍙傛暟鍙樻洿,ip,server name,寮�鍏虫満淇℃伅
+ TypeManual = iota + 1 //浜哄伐鎿嶄綔鏃ュ織,绯荤粺鍗囩骇,鎽勫儚鏈轰慨鏀�,绠楁硶淇敼...
+ TypeLoginOut //鐧诲綍鐧诲嚭鏃ュ織
+ TypePollInfo //杞贰鎽勫儚鏈哄強鍏跺搴旂殑绠楁硶
+ TypeStackInfo //鏁版嵁鏍堝鐞嗘儏鍐�
+ TypeWarnInfo //鏁呴殰淇℃伅
+ TypeRunInfo //杩愯鎯呭喌,gpu,mem,cpu
+ TypeSysInfo //绯荤粺鍙傛暟鍙樻洿,ip,server name,寮�鍏虫満淇℃伅
)
+
+type LogPrinter interface {
+ Marshal() ([]byte, error)
+ Topic() string
+}
type LogInfo struct {
ID string `gorm:"column:id;primary_key;unique" json:"id"`
@@ -39,24 +43,22 @@
}
type LogRegister struct {
- Nodes []bhomebus.NetNode
- Topic string
- Payload []byte
+ Nodes []bhome_msg.BHAddress
+ Topic string
+ Payload []byte
}
type LogReportCallback func(*LogRegister)
var (
- opChan chan *OperationLog
- schedualeChan chan *ScheduleLog
- logger *Log
+ logCh chan LogPrinter
+ logger *Log
ProcName string
- ProcID string
+ ProcID string
)
-func Init(flogWriter LogReportCallback, log *Log, procId string, procName string, wg *sync.WaitGroup, done chan struct{}) bool {
- opChan = make(chan *OperationLog, 100)
- schedualeChan = make(chan *ScheduleLog)
+func Init(flogWriter LogReportCallback, log *Log, procId string, procName string, wg *sync.WaitGroup, done chan struct{}) bool {
+ logCh = make(chan LogPrinter, 300)
if nil != log {
logger = log
@@ -80,17 +82,7 @@
log.ProcName = ProcName
log.ProcID = ProcID
- select {
- case opChan <- log:
- return
- case <-time.After(timeout):
- var info string
- b, err := json.Marshal(log)
- if nil == err {
- info = string(b)
- }
- logger.Fatal("SaveOperationLog failed to save log", info)
- }
+ deliverLog(log, timeout)
}
func SaveScheduleLog(category, level int, timeout time.Duration, v ...interface{}) {
@@ -100,7 +92,7 @@
}
if msg == "" {
- retrun
+ return
}
log := &ScheduleLog{
@@ -112,19 +104,26 @@
Info: msg,
}
+ deliverLog(log, timeout)
+}
+
+func SaveRuleServerLog(ruleServerPushLog RuleServerPushLog, timeout time.Duration) {
+ deliverLog(&ruleServerPushLog, timeout)
+}
+
+func deliverLog(l LogPrinter, timeout time.Duration) {
select {
- case schedualeChan <- log:
+ case logCh <- l:
return
case <-time.After(timeout):
var info string
- b, err := json.Marshal(log)
+ b, err := l.Marshal()
if nil == err {
info = string(b)
}
- logger.Fatal("SaveScheduleLog failed to save log", info)
+ logger.Fatal("SaveScheduleLog failed to save log", info, l.Topic())
}
}
-
//func Save(level int, logType int, v ...interface{}) {
// cache(level, logType, "", "", v)
@@ -164,10 +163,13 @@
//}
const (
- OperationLogTopic = "operationLogSaveTopic"
+ OperationLogTopic = "operationLogSaveTopic"
+ ScheduleLogTopic = "scheduleLogSaveTopic"
+ RuleServerLogTopic = "ruleServerLogSaveTopic"
+ VaSystemLogTopic = "VaSystemLogSaveTopic"
)
-func saveLoop(logCallback LogReportCallback, wg *sync.WaitGroup, done chan struct{}) {
+func saveLoop(logCallback LogReportCallback, wg *sync.WaitGroup, done chan struct{}) {
defer wg.Done()
if nil == logCallback {
@@ -176,26 +178,24 @@
for {
select {
- case <- done:
+ case <-done:
return
- case data := <- opChan:
- payload, err := json.Marshal(data)
+ case log := <-logCh:
+ payload, err := log.Marshal()
if err != nil {
- fmt.Println("json.Marshal(operation data) error:", data)
+ logger.Error("failed to Marshal", log)
} else {
- var nodes []bhomebus.NetNode
- nodes = append(nodes, bhomebus.NetNode{})
+ var nodes []bhome_msg.BHAddress
+ nodes = append(nodes, bhome_msg.BHAddress{})
- reg := &LogRegister {
+ reg := &LogRegister{
nodes,
- OperationLogTopic,
+ log.Topic(),
payload,
}
logCallback(reg)
}
- default:
- time.Sleep(10*time.Millisecond)
}
}
}
--
Gitblit v1.8.0