yanghui
2021-04-23 1ba7144578b8371842d9f6ef4159ff8c97932842
logc.go
@@ -2,6 +2,8 @@
import (
   "basic.com/valib/bhomebus.git"
   "bytes"
   "net/url"
   "encoding/json"
   "fmt"
@@ -18,13 +20,13 @@
)
const (
   TypeManual = iota + 1
   TypeLoginOut
   TypePollInfo
   TypeStackInfo
   TypeWarnInfo
   TypeRunInfo
   TypeSysInfo
   TypeManual = iota + 1  //人工操作日志,系统升级,摄像机修改,算法修改...
   TypeLoginOut //登录登出日志
   TypePollInfo //轮巡摄像机及其对应的算法
   TypeStackInfo //数据栈处理情况
   TypeWarnInfo //故障信息
   TypeRunInfo //运行情况,gpu,mem,cpu
   TypeSysInfo //系统参数变更,ip,server name,开关机信息
)
type LogInfo struct {
@@ -42,17 +44,42 @@
var (
   msgChan chan []byte
   bhSock *bhomebus.Socket
   pubFn func(nodes []bhomebus.NetNode, topic string, data []byte, milliseconds int) int
   ProcName string
   ProcID string
)
func Init(sock *bhomebus.Socket, procId string, procName string) {
func init() {
}
func InitBySock(sock *bhomebus.Socket, procId string, procName string) bool {
   msgChan = make(chan []byte, 100)
   ProcName = procName
   ProcID = procId
   bhSock = sock
   if bhSock == nil {
      return false
   }
   go saveLoop()
   return true
}
func InitByPubFn(fn func(nodes []bhomebus.NetNode, topic string, data []byte, milliseconds int) int,
            procId string, procName string) bool {
   msgChan = make(chan []byte, 100)
   ProcName = procName
   ProcID = procId
   pubFn = fn
   if pubFn == nil {
      return false
   }
   go saveLoop()
   return true
}
func Save(level int, logType int, v ...interface{}) {
@@ -101,14 +128,21 @@
      select {
      case data := <- msgChan:
         var nodes []bhomebus.NetNode
         nodes = append(nodes, bhomebus.NetNode{
            Key: 8,
         })
         bhSock.PubTimeout(nodes, LogSaveTopic, data, 1000)
         nodes = append(nodes, bhomebus.NetNode{})
         if bhSock != nil {
            bhSock.PubTimeout(nodes, LogSaveTopic, data, 1000)
         } else if pubFn != nil {
            pubFn(nodes, LogSaveTopic, data, 1000)
         } else {
            fmt.Println("bhSock nil and pubFn nil")
         }
      default:
         time.Sleep(10*time.Millisecond)
      }
   }
}
func Log(userName, method, path, contentType, module string, body *bytes.Buffer, values url.Values) {
}