From 40e90ca2c934c8505f2a9e9b1c4f076657008369 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期五, 05 七月 2019 10:34:00 +0800
Subject: [PATCH] 添加日志系统
---
logger/logger.go | 217 +++++++++++++++++++++++++++++++
insertdata/insertDataToEs.go | 36 ++--
ruleserver/ruleToformula.go | 90 ++++++------
main.go | 29 ++-
ruleserver/timeTicker.go | 7
5 files changed, 302 insertions(+), 77 deletions(-)
diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 277b14a..a620ce9 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -4,9 +4,9 @@
"encoding/json"
"errors"
"fmt"
- "log"
"net"
"ruleprocess/cache"
+ "ruleprocess/logger"
"strings"
"time"
@@ -99,7 +99,7 @@
// 鐩存帴浠庤鍒欑殑鏍囩鏁版嵁閲屾嬁绗﹀悎瑙勫垯鐨勪汉鑴哥粨鏋�
if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.Arg)) > 0 {
- log.Println("寰�ES鎻掍汉鑴告暟鎹�")
+ logger.Info("寰�ES鎻掍汉鑴告暟鎹�")
for _, face := range msg.RuleResult["face"].([]ruleserver.Arg) {
// 涓婁紶澶у浘
// 瑙e帇缂╁苟涓婁紶鍥剧墖
@@ -116,7 +116,7 @@
// 浜鸿劯妫�娴嬶紝娌℃湁鐩镐技鐨勫簳搴撲汉鍛�
localConfig, err := cache.GetServerInfo()
if err != nil {
- log.Println("鏌ヨ鏈満淇℃伅澶辫触锛�")
+ logger.Info("鏌ヨ鏈満淇℃伅澶辫触锛�")
}
serverIp, err := GetLocalIP()
// 瑙e帇缂╁苟涓婁紶鍥剧墖
@@ -127,15 +127,15 @@
// 鏌ヨcameraName
camera, err := cache.GetCameraById(msg.Cid)
if err != nil {
- log.Println("鏌ヨ鎽勫儚鏈轰俊鎭け璐�")
+ logger.Info("鏌ヨ鎽勫儚鏈轰俊鎭け璐�")
}
i := protomsg.Image{}
err = proto.Unmarshal(bdata, &i)
- log.Println("-------------------------------------------鐪嬩笅瀹藉拰楂�", i.Width, i.Height)
+ logger.Info("-------------------------------------------鐪嬩笅瀹藉拰楂�", i.Width, i.Height)
bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height))
resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String())
if err != nil {
- log.Println("涓婁紶灏忓浘鍑洪敊")
+ logger.Info("涓婁紶灏忓浘鍑洪敊")
}
sex := ""
if face.ThftRes.Gender == 1 {
@@ -179,19 +179,19 @@
requstbody, err := json.Marshal(pervideo)
if err != nil {
- log.Println("json parse error ", err)
+ logger.Info("json parse error ", err)
return
}
err = EsReq("POST", "http://192.168.1.182:9200/videopersons/perVideoPicture", requstbody)
- log.Println(err)
+ logger.Info(err.Error())
} else {
- log.Println("璺熷簳搴撶殑鐩镐技鏁版嵁---------锛�", face.Liker)
+ logger.Info("璺熷簳搴撶殑鐩镐技鏁版嵁---------锛�", face.Liker)
}
}
}
if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 {
- log.Println("寰�ES鎻抷olo鏁版嵁")
+ logger.Info("寰�ES鎻抷olo鏁版嵁")
var sdkNames string = ""
alarmRules := []AlarmRule{}
for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
@@ -213,25 +213,25 @@
//resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
resp, err = util.DrawPolygonOnImage(msg.Cid, i,msg.RuleResult["yolo"].([]ruleserver.Result))
if err != nil {
- log.Println("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
+ logger.Info("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
} else {
- log.Println("宸叉姤璀﹀苟涓婁紶鏀瑰抚鍥剧墖鍒版湇鍔″櫒")
+ logger.Info("宸叉姤璀﹀苟涓婁紶鏀瑰抚鍥剧墖鍒版湇鍔″櫒")
}
} else {
isAlarm = 0
// 涓嶆槸鎶ヨ鏁版嵁涓嶅瓨
return
}
- // log.Println("鍥剧墖涓婁紶杩斿洖鍊硷細", resp)
+ // logger.Println("鍥剧墖涓婁紶杩斿洖鍊硷細", resp)
// 鏌ヨ鏈満淇℃伅
localConfig, err := cache.GetServerInfo()
if err != nil {
- log.Println("鏌ヨ鏈満淇℃伅澶辫触锛�")
+ logger.Info("鏌ヨ鏈満淇℃伅澶辫触锛�")
}
// 鏌ヨcameraName
camera, err := cache.GetCameraById(msg.Cid)
if err != nil {
- log.Println("鏌ヨ鎽勫儚鏈轰俊鎭け璐�")
+ logger.Info("鏌ヨ鎽勫儚鏈轰俊鎭け璐�")
}
serverIp, err := GetLocalIP()
peraction := Personaction{
@@ -259,15 +259,15 @@
requstbody, err := json.Marshal(peraction)
if err != nil {
- log.Println("json parse error ", err)
+ logger.Info("json parse error ", err)
return
}
err = EsReq("POST", "http://192.168.1.182:9200/personaction/perVideoAction", requstbody)
if err != nil {
- log.Println("寰�ES鎻掑叆鏁版嵁澶辫触", err)
+ logger.Info("寰�ES鎻掑叆鏁版嵁澶辫触", err)
} else {
- log.Println("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛")
+ logger.Info("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛")
}
}
}
diff --git a/logger/logger.go b/logger/logger.go
new file mode 100644
index 0000000..c7bb6c5
--- /dev/null
+++ b/logger/logger.go
@@ -0,0 +1,217 @@
+package logger
+
+import (
+ "fmt"
+ "log"
+ "os"
+ "os/exec"
+ "strings"
+ "time"
+)
+
+const (
+ PanicLevel int = iota
+ FatalLevel
+ ErrorLevel
+ WarnLevel
+ InfoLevel
+ DebugLevel
+)
+
+const (
+ color_red = uint8(iota + 91)
+ color_green // 缁�
+ color_yellow // 榛�
+ color_blue // 钃�
+ color_magenta // 娲嬬孩
+)
+
+const (
+ fatalPrefix = "[FATAL] "
+ errorPrefix = "[ERROR] "
+ warnPrefix = "[WARN] "
+ infoPrefix = "[INFO] "
+ debugPrefix = "[DEBUG] "
+)
+
+const (
+ ByDay int = iota
+ ByWeek
+ ByMonth
+ BySize
+)
+
+type LogFile struct {
+ level int // 鏃ュ織绛夌骇
+ saveMode int // 淇濆瓨妯″紡
+ saveDays int // 鏃ュ織淇濆瓨澶╂暟
+ logTime int64 //
+ fileName string // 鏃ュ織鏂囦欢鍚�
+ filesize int64 // 鏂囦欢澶у皬, 闇�瑕佽缃� saveMode 涓� BySize 鐢熸晥
+ fileFd *os.File
+}
+
+var logFile LogFile
+
+func init() {
+ logFile.saveMode = ByDay // 榛樿鎸夊ぉ淇濆瓨
+ logFile.saveDays = 15 // 榛樿淇濆瓨涓夊ぉ鐨�
+ logFile.level = ErrorLevel
+ logFile.filesize = 1024 * 1024 * 10 // 榛樿10M锛� 闇�瑕佽缃� saveMode 涓� BySize
+}
+
+func Config(logFolder string, level int) {
+ logFile.fileName = logFolder
+ logFile.level = level
+
+ log.SetOutput(logFile)
+ //logger.SetFlags(logger.Lmicroseconds | logger.Lshortfile)
+ log.SetFlags(log.Ldate | log.Ltime)
+}
+func GetLogFile() (*LogFile) {
+ return &logFile
+}
+
+func SetLevel(level int) {
+ logFile.level = level
+}
+
+func SetSaveMode(saveMode int) {
+ logFile.saveMode = saveMode
+}
+
+func SetSaveDays(saveDays int) {
+ logFile.saveDays = saveDays
+}
+
+func SetSaveSize(saveSize int64) {
+ logFile.filesize = saveSize
+}
+
+func Debug(args ...interface{}) {
+ if logFile.level >= DebugLevel {
+ log.SetPrefix(blue(debugPrefix))
+ log.Output(2, fmt.Sprintln(args...))
+ }
+}
+
+func Info(format string, args ...interface{}) {
+ if logFile.level >= InfoLevel {
+ log.SetPrefix(green(infoPrefix))
+ log.Output(2, fmt.Sprintln(args...))
+ }
+}
+
+func Warn(format string, args ...interface{}) {
+ if logFile.level >= WarnLevel {
+ log.SetPrefix(magenta(warnPrefix))
+ log.Output(2, fmt.Sprintln(args...))
+ }
+}
+
+func Error(args ...interface{}) {
+ if logFile.level >= ErrorLevel {
+ log.SetPrefix(red(errorPrefix))
+ log.Output(2, fmt.Sprintln(args...))
+ }
+}
+
+func Fatalf(args ...interface{}) {
+ if logFile.level >= FatalLevel {
+ log.SetPrefix(red(fatalPrefix))
+ log.Output(2, fmt.Sprintln(args...))
+ }
+}
+
+func GetRedPrefix(s string) string {
+ return fmt.Sprintf("\x1b[%dm%s\x1b[0m", color_red, s)
+}
+
+func red(s string) string {
+ return fmt.Sprintf("\x1b[%dm%s\x1b[0m", color_red, s)
+}
+
+func green(s string) string {
+ return fmt.Sprintf("\x1b[%dm%s\x1b[0m", color_green, s)
+}
+
+func yellow(s string) string {
+ return fmt.Sprintf("\x1b[%dm%s\x1b[0m", color_yellow, s)
+}
+
+func blue(s string) string {
+ return fmt.Sprintf("\x1b[%dm%s\x1b[0m", color_blue, s)
+}
+
+func magenta(s string) string {
+ return fmt.Sprintf("\x1b[%dm%s\x1b[0m", color_magenta, s)
+}
+
+func (me LogFile) Write(buf []byte) (n int, err error) {
+ if me.fileName == "" {
+ fmt.Printf("consol: %s", buf)
+ return len(buf), nil
+ }
+
+ switch logFile.saveMode {
+ case BySize:
+ fileInfo, err := os.Stat(logFile.fileName)
+ if err != nil {
+ logFile.createLogFile()
+ logFile.logTime = time.Now().Unix()
+ }else {
+ filesize:= fileInfo.Size();
+ if logFile.fileFd == nil ||
+ filesize > logFile.filesize {
+ logFile.createLogFile()
+ logFile.logTime = time.Now().Unix()
+ }
+ }
+ default: // 榛樿鎸夊ぉ ByDay
+ if logFile.logTime+3600 < time.Now().Unix() {
+ logFile.createLogFile()
+ logFile.logTime = time.Now().Unix()
+ }
+ }
+
+ if logFile.fileFd == nil {
+ fmt.Printf("logger fileFd is nil !\n")
+ return len(buf), nil
+ }
+
+ return logFile.fileFd.Write(buf)
+}
+
+func (me *LogFile) createLogFile() {
+ logdir := "./"
+ if index := strings.LastIndex(me.fileName, "/"); index != -1 {
+ logdir = me.fileName[0:index] + "/"
+ os.MkdirAll(me.fileName[0:index], os.ModePerm)
+ }
+
+ now := time.Now()
+ filename := fmt.Sprintf("%s_%04d%02d%02d_%02d%02d",
+ me.fileName, now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute())
+ if err := os.Rename(me.fileName, filename); err == nil {
+ go func() {
+ tarCmd := exec.Command("tar", "-zcf", filename+".tar.gz", filename, "--remove-files")
+ tarCmd.Run()
+
+ rmCmd := exec.Command("/bin/sh", "-c",
+ "find "+logdir+` -type f -mtime +` +string(logFile.saveDays)+ ` -exec rm {} \;`)
+ rmCmd.Run()
+ }()
+ }
+
+ for index := 0; index < 10; index++ {
+ if fd, err := os.OpenFile(me.fileName, os.O_CREATE|os.O_APPEND|os.O_WRONLY, os.ModeExclusive); nil == err {
+ me.fileFd.Sync()
+ me.fileFd.Close()
+ me.fileFd = fd
+ break
+ }else {
+ fmt.Println("Open logfile error! err: ", err.Error())
+ }
+ me.fileFd = nil
+ }
+}
\ No newline at end of file
diff --git a/main.go b/main.go
index b3dfd7b..6ccfb71 100644
--- a/main.go
+++ b/main.go
@@ -12,12 +12,12 @@
"gocv.io/x/gocv"
"image"
"image/color"
- "log"
"os"
"ruleprocess/cache"
"ruleprocess/insertdata"
"ruleprocess/ruleserver"
"ruleprocess/util"
+ "ruleprocess/logger"
"sync"
)
var dbIp = flag.String("dbIp","127.0.0.1","dbserver ip")
@@ -25,6 +25,15 @@
var surveyPort = flag.Int("surveyPort",40007,"survey port") //蹇冭烦
var pubPort = flag.Int("pubPort",50007,"pubsub port") //鏁版嵁鏇存柊
var initchan = make(chan bool)
+func init () {
+ var logFile = "/opt/ruleLog/error.log"
+ var logSaveDays = 15
+
+ // 鏃ュ織鍒濆鍖�
+ logger.Config(logFile, logger.DebugLevel)
+ logger.SetSaveDays(logSaveDays)
+ logger.Info("loginit success !")
+}
func main() {
flag.Parse()
wg := sync.WaitGroup{}
@@ -39,9 +48,9 @@
wg.Wait()
//resp,err := DrawPolygonOnImage()
//if err != nil {
- // log.Println("鐢绘鎴栬�呬笂浼犳湁闂")
+ // logger.Println("鐢绘鎴栬�呬笂浼犳湁闂")
//}
- //log.Println(resp["fileUrl"].(string))
+ //logger.Println(resp["fileUrl"].(string))
}
func nReciever(url string, m deliver.Mode, count int) {
c := deliver.NewServer(m, url)
@@ -110,7 +119,7 @@
}
i := protomsg.Image{}
err = proto.Unmarshal(bdata, &i)
- log.Println("----------------鐪嬬湅鏈夊嚑涓畻娉曪細",len(m.Tasklab.Sdkinfos))
+ logger.Info("----------------鐪嬬湅鏈夊嚑涓畻娉曪細",len(m.Tasklab.Sdkinfos))
for _, sdkinfo := range m.Tasklab.Sdkinfos { // yolo绠楁硶
if sdkinfo.Sdktype == "Yolo" {
arg := ruleserver.SdkData{}
@@ -137,7 +146,7 @@
fmt.Println("瑙f瀽YOLO sdk鏁版嵁鏃跺嚭鐜伴敊璇�", err)
continue
}
- log.Println("------褰撳墠绠楁硶name",sdkinfo.SdkName,"--------------鐪嬬湅yolo涓湁鍑犱釜鐩爣锛�",len(yoloParam.Infos))
+ logger.Info("------褰撳墠绠楁硶name",sdkinfo.SdkName,"--------------鐪嬬湅yolo涓湁鍑犱釜鐩爣锛�",len(yoloParam.Infos))
for _, info := range yoloParam.Infos {
if info.Typ == 0 {
photoMap := ruleserver.PhotoMap{Rects: rectFormat(info.RcObj), Score: float64(info.Prob)*100,IsYolo:true}
@@ -174,7 +183,7 @@
fmt.Println("瑙f瀽FACE sdk鏁版嵁鏃跺嚭鐜伴敊璇�", err)
continue
}
- log.Println("------褰撳墠绠楁硶name",sdkinfo.SdkName,"--------------鐪嬬湅浜鸿劯妫�娴嬩腑鏈夊嚑涓洰鏍囷細",len(faceParam.Faces))
+ logger.Info("------褰撳墠绠楁硶name",sdkinfo.SdkName,"--------------鐪嬬湅浜鸿劯妫�娴嬩腑鏈夊嚑涓洰鏍囷細",len(faceParam.Faces))
for _, info := range faceParam.Faces {
photoMap := ruleserver.PhotoMap{Rects: rectFormat(info.Pos.RcFace), Score: float64(info.Pos.Quality)*100, IsYolo:false,ThftRes:*(info.Result)}
arg.Photo = append(arg.Photo, photoMap)
@@ -215,9 +224,9 @@
fmt.Println("瑙f瀽浜鸿劯姣斿鏁版嵁鏃跺嚭鐜伴敊璇�", err)
continue
}
- log.Println("_________________________________________________________________瑙f瀽鍑虹殑浜鸿劯鐨勭浉浼肩殑搴曞簱鏁版嵁",binfos)
+ logger.Info("_________________________________________________________________瑙f瀽鍑虹殑浜鸿劯鐨勭浉浼肩殑搴曞簱鏁版嵁",binfos)
}
- log.Println("------褰撳墠绠楁硶name",sdkinfo.SdkName,"--------------鐪嬬湅浜鸿劯鎻愬彇涓湁鍑犱釜鐩爣锛�",len(faceParam.ExtComp))
+ logger.Info("------褰撳墠绠楁硶name",sdkinfo.SdkName,"--------------鐪嬬湅浜鸿劯鎻愬彇涓湁鍑犱釜鐩爣锛�",len(faceParam.ExtComp))
for _, extComp := range faceParam.ExtComp {
baseinfos := protomsg.Binfos{}
err1 := proto.Unmarshal(extComp.Comp, &baseinfos)
@@ -280,7 +289,7 @@
//client := &http.Client{Timeout: timeout}
//resp, err := client.Do(request)
//if err != nil {
- // log.Fatal(err)
+ // logger.Fatal(err)
// return nil, err
//}
//defer func() {
@@ -303,7 +312,7 @@
// body := &bytes.Buffer{}
// _, err := body.ReadFrom(resp.Body)
// if err != nil {
- // log.Fatal(err)
+ // logger.Fatal(err)
// }
// fmt.Println(resp.StatusCode)
// //fmt.Println(resp.Header)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 02d1dd0..805b37f 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -3,8 +3,8 @@
import (
"encoding/json"
"fmt"
- "log"
"ruleprocess/cache"
+ "ruleprocess/logger"
"sort"
"strconv"
"strings"
@@ -169,20 +169,20 @@
// if item.CameraId == cameraId && item.Type != "line" {
// // 闇�瑕佹牴鎹瘮渚嬫妸鍓嶅彴鐢荤殑鍖哄煙鐨勫潗鏍囪浆鍖栦负鐩稿簲鎽勫儚鏈烘媿鎽勭殑鍥惧儚鐨勫ぇ灏� x鍧愭爣鍒嗗埆*image.width/椤甸潰鍖哄煙瀹� y鍧愭爣鍒嗗埆*image.height/椤甸潰鍖哄煙楂�
// // 鍓嶅彴瀹介珮鍥哄畾
- // //log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item)
+ // //logger.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item)
// cameraPolygons = append(cameraPolygons, item)
// }
//}
cameraPolygons = cache.GetPolygonsByCameraId(cameraId)
- //log.Println("鏍规嵁鎽勫儚鏈篿d鏌ュ埌鐨勫尯鍩�", cameraPolygons, "--鍖哄煙鏁伴噺涓猴細", len(cameraPolygons))
+ //logger.Println("鏍规嵁鎽勫儚鏈篿d鏌ュ埌鐨勫尯鍩�", cameraPolygons, "--鍖哄煙鏁伴噺涓猴細", len(cameraPolygons))
return cameraPolygons
}
// 鎶妔dk浠庢暟鎹抚涓婃彁鍙栫殑鎸夌収鍖哄煙鍒嗙被褰掔疆
func SdkDataFormat(cameraId string, arg *SdkData, cameraPolygons []protomsg.CameraPolygon) {
for _, polygon := range cameraPolygons {
- //log.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩:", polygon.Polygon)
+ //logger.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩:", polygon.Polygon)
areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
// 涓烘瘡涓憚鍍忔満鍖哄煙濉厖鏁版嵁
areaMap.CountAreaObjs(arg)
@@ -201,17 +201,17 @@
}
// 璺戞湰鎽勫儚鏈虹殑鎵�鏈夎鍒欑粍 涓�缁勪竴缁勮窇
taskRuleList := GetRuleGroup(args.CameraId) // 鏈憚鍍忔満涓嬫墍鏈変换鍔$粍
- //log.Println("鐪嬩笅鎽勫儚鏈轰笅鐨勪换鍔$粍锛�",taskRuleList)
+ //logger.Println("鐪嬩笅鎽勫儚鏈轰笅鐨勪换鍔$粍锛�",taskRuleList)
// 寰楀埌灞炰簬璇ユ憚鍍忔満鐨勮嫢骞茬粍浠诲姟鐨勫畬鏁磋鍒欙紙璺熸瘡涓�鏉″畬鏁磋鍒欐瘮杈冧箣鍚庡緱鍑烘湰寮犲浘鍍忓浜庢煇涓鍒欐槸鍚︽姤璀︾殑缁撴灉銆傛斁杩沵ap锛屾瘮濡傛湰甯у浘鍍忕殑id锛屾墍纰版挒鎴愬姛鐨勮鍒檌d锛�
args.RuleResult = make(map[string]interface{})
args.RuleResult["yolo"] = []Result{}
args.RuleResult["face"] = []Arg{}
if len(taskRuleList) > 0 {
for _, taskRule := range taskRuleList {
- //log.Println("------------------------------浠诲姟瑙勫垯锛�",taskRule)
+ //logger.Println("------------------------------浠诲姟瑙勫垯锛�",taskRule)
ruleList := taskRule.GroupRules // 鑾峰彇鐨勬槸task涓嬮潰鐨勪换鍔$粍
taskId := taskRule.TaskId
- //log.Println("------------鏈粍浠诲姟涓嬬殑瑙勫垯缁勭殑鏁伴噺锛�",len(ruleList))
+ //logger.Println("------------鏈粍浠诲姟涓嬬殑瑙勫垯缁勭殑鏁伴噺锛�",len(ruleList))
for i := 0; i < len(ruleList); i++ {
temp := ruleList[i].Rules // temp涓轰竴缁勫畬鏁磋鍒� 鍦ㄦ闇�瑕佸垽鏂鍒欐槸鍚︽槸鑱斿姩瑙勫垯
if len(temp) > 0 {
@@ -234,7 +234,7 @@
fmt.Println("姣斿瑙勫垯鏈夎", err.(string))
}
}()
- log.Println("+++++++++++瑙勫垯寮�濮嬭繍琛�+++++++++++++++++褰撳墠瑙勫垯--锛�", (*groupRule).GroupText)
+ logger.Info("+++++++++++瑙勫垯寮�濮嬭繍琛�+++++++++++++++++褰撳墠瑙勫垯--锛�", (*groupRule).GroupText)
resultSplice := []*LittleRuleResult{}
// 鍏堣繃瀹屾潯浠惰鍒�
for j := 0; j < len(groupRule.Rules); j++ {
@@ -242,7 +242,7 @@
for _, areaMap := range sdkData.AreaMapList {
ruleResult := filterRule(groupRule.Rules[j], &areaMap)
if ruleResult.Result != "" {
- log.Println("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result)
+ logger.Info("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result)
resultSplice = append(resultSplice, &ruleResult)
}
}
@@ -255,7 +255,7 @@
for _, areaMap := range sdkData.AreaMapList {
ruleResult := transferParameters(groupRule.Rules[j], &areaMap)
if ruleResult.Result != "" {
- log.Println("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result)
+ logger.Info("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result)
resultSplice = append(resultSplice, &ruleResult)
}
}
@@ -267,7 +267,7 @@
for _, areaMap := range sdkData.AreaMapList {
ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap)
if ruleResult.Result != "" {
- log.Println("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
+ logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
resultSplice = append(resultSplice, &ruleResult)
}
}
@@ -296,13 +296,13 @@
if strings.HasPrefix(completeFormula, ">") || strings.HasPrefix(completeFormula, "<") {
completeFormula = completeFormula[1 :]
}
- log.Println("-------------------鐪嬬湅鎷旀瘺鍚庣殑琛ㄨ揪寮忥細",completeFormula)
+ logger.Info("-------------------鐪嬬湅鎷旀瘺鍚庣殑琛ㄨ揪寮忥細",completeFormula)
expression, _ := govaluate.NewEvaluableExpression(completeFormula)
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
return result.(bool)
}
if completeFormula != "" {
- log.Println("缁撴灉鍏紡-----------锛�", completeFormula)
+ logger.Info("缁撴灉鍏紡-----------锛�", completeFormula)
expression, _ := govaluate.NewEvaluableExpression(completeFormula)
if strings.HasPrefix(completeFormula, "&&") || strings.HasPrefix(completeFormula, "||") {
panic("瑙勫垯鏈夎锛屽緱鍒扮殑鏁板鍏紡涓嶅彲瑙f瀽")
@@ -316,7 +316,7 @@
timeEle.N = timeEle.InitN // 閲嶇疆瀹氭椂鍣�
}
}
- log.Println("--------------------璧拌繖閲屼簡鍚�---------------")
+ logger.Info("--------------------璧拌繖閲屼簡鍚�---------------")
return false
} else {
// 鏈�鍚庢垚鍔熸姤璀︽墠鎶婄鍚堟潯浠剁殑浜鸿劯鏁版嵁濉炶繘缁撴灉鏍囩閲�
@@ -343,7 +343,7 @@
for k, timeEle := range TimeEleList {
if strings.Contains(k, taskId) {
if timeEle.N != 0 { // 璺熻繖涓换鍔℃湁鍏崇殑瀹氭椂鍣ㄨ鍏ㄩ儴绛変簬0
- log.Println("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------涓嶅啢锛屼綘鏄瀹氭椂鍣ㄦ墦璐ョ殑锛�")
+ logger.Info("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------涓嶅啢锛屼綘鏄瀹氭椂鍣ㄦ墦璐ョ殑锛�")
flag = false
}
}
@@ -380,10 +380,10 @@
// args.RuleResult["face"] = faces
//}
args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText,locations})
- log.Println("-------------------yolo缁撴灉鏍囩", args.RuleResult["yolo"].([]Result))
+ logger.Info("-------------------yolo缁撴灉鏍囩", args.RuleResult["yolo"].([]Result))
}
if args.RuleResult["face"] != nil {
- log.Println("-------------------face缁撴灉鏍囩", args.RuleResult["face"].([]Arg))
+ logger.Info("-------------------face缁撴灉鏍囩", args.RuleResult["face"].([]Arg))
}
return true
} else {
@@ -404,7 +404,7 @@
}
}
}
- //log.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
+ //logger.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
return faces
}
@@ -417,7 +417,7 @@
}
}
}
- //log.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
+ //logger.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
return locations
}
@@ -439,12 +439,12 @@
// }
for _, obj := range arg.Photo {
- log.Println("------------------鐪嬬湅sdkData:", arg.SdkName, "鐨凱hoto鏁版嵁----------------", obj, "----椤轰究鐪嬬湅鍗犳瘮-----锛�", PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale))
+ logger.Info("------------------鐪嬬湅sdkData:", arg.SdkName, "鐨凱hoto鏁版嵁----------------", obj, "----椤轰究鐪嬬湅鍗犳瘮-----锛�", PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale))
if threshold <= obj.Score && size <= float64(obj.Rects.Width*obj.Rects.Height) && intersectionper <= PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale) {
// 杩欐瑕佸榻愯〃杈惧紡閲屾墍闇�瑕佺殑鎵�鏈夊弬鏁�
a.targetNum++
arg1 := Arg{obj.Score, PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale), float64(obj.Rects.Width * obj.Rects.Height), obj.IsYolo, obj.Rects, obj.SdkName, obj.ThftRes, obj.Liker}
- //log.Println("鏀捐繘鍘荤殑arg锛�-------", arg1)
+ //logger.Println("鏀捐繘鍘荤殑arg锛�-------", arg1)
a.args = append(a.args, arg1)
a.filterData = append(a.filterData, arg1)
}
@@ -454,7 +454,7 @@
a.time = time.Unix(time.Now().Unix(), 0).String()[11:16]
a.keepRight = arg.KeepRight
a.isStatic = arg.IsStatic
- //log.Println("--------------------鐪嬬湅鍖哄煙鏁版嵁锛�",*a)
+ //logger.Println("--------------------鐪嬬湅鍖哄煙鏁版嵁锛�",*a)
}
// 灏嗗瓧绗︿覆鏍煎紡鐨勫潗鏍囧簭鍒楀寲涓篜oint鏍煎紡
@@ -495,7 +495,7 @@
// 鑱斿姩浠诲姟鐨勫鐞�
func LinkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) {
// new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽
- log.Println("------------------------------------------褰撳墠鏄仈鍔ㄤ换鍔★紝瑙勫垯鏄細", groupRule.GroupText)
+ logger.Info("------------------------------------------褰撳墠鏄仈鍔ㄤ换鍔★紝瑙勫垯鏄細", groupRule.GroupText)
var flag bool = true
var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId}
for k, timeEle1 := range TimeEleList {
@@ -531,13 +531,13 @@
for _, va := range timeEle.RuleResults {
if va.CameraId == args.CameraId {
va.Result = strconv.FormatBool(isOk)
- log.Println("杩欎釜鎽勫儚鏈�--", args.CameraId, "--琚祴浜堜簡result", va.Result)
+ logger.Info("杩欎釜鎽勫儚鏈�--", args.CameraId, "--琚祴浜堜簡result", va.Result)
}
}
// 鍒ゆ柇缁撴灉鏁扮粍鏄惁瀹屾弧(鍗宠璧嬪�煎畬姣�)鍙緱鍑烘姤璀︾粨鏋�
var isPerfect = true
for _, va := range timeEle.RuleResults {
- log.Println("---------------------鐬呯瀰褰撳墠鏁扮粍________________锛�", *va)
+ logger.Info("---------------------鐬呯瀰褰撳墠鏁扮粍________________锛�", *va)
if va.Result == "" && va.RuleWithPre != "||" {
isPerfect = false
}
@@ -550,12 +550,12 @@
for _, va := range timeEle.RuleResults {
completeFormula = completeFormula + va.RuleWithPre + "" + va.Result
}
- log.Println("---------------------------鑱斿姩浠诲姟鐨勫叕寮�", completeFormula)
+ logger.Info("---------------------------鑱斿姩浠诲姟鐨勫叕寮�", completeFormula)
if completeFormula != "" {
expression, _ := govaluate.NewEvaluableExpression(completeFormula)
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
if result.(bool) {
- log.Println("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ")
+ logger.Info("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ")
sdkName := ""
for j := 0; j < len(groupRule.Rules); j++ {
for _, sdkData := range args.Sdkdata {
@@ -566,10 +566,10 @@
}
if sdkName != "" {
args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText,[]Rect{}})
- log.Println("-------------------yolo缁撴灉鏍囩", args.RuleResult["yolo"].([]Result))
+ logger.Info("-------------------yolo缁撴灉鏍囩", args.RuleResult["yolo"].([]Result))
}
if args.RuleResult["face"] != nil {
- log.Println("-------------------face缁撴灉鏍囩", args.RuleResult["face"].([]Arg))
+ logger.Info("-------------------face缁撴灉鏍囩", args.RuleResult["face"].([]Arg))
}
//os.Exit(0)
}
@@ -600,7 +600,7 @@
// 鍙渶瑕佽繃婊ら槇鍊硷紝杩囨护瀹屽悗鏁扮粍闀垮害澶т簬0鍗充负鎶ヨ锛屼絾瑕佽�冭檻濡備綍瀵规瘡涓�寮犻兘鎶ヨ鍛�
argValue, err := strconv.ParseFloat(rule.SdkArgValue, 64)
if err != nil {
- log.Println("瑙勫垯閰嶇疆鐨勯槇鍊奸潪娉�")
+ logger.Info("瑙勫垯閰嶇疆鐨勯槇鍊奸潪娉�")
return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort}
}
flag := "false"
@@ -631,7 +631,7 @@
return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort}
}
if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 浜鸿劯妫�娴�
- log.Println("------------------------------------------------------------------------------------------------------------------------------------缁堜簬绛夊埌浣�")
+ logger.Info("------------------------------------------------------------------------------------------------------------------------------------缁堜簬绛夊埌浣�")
if rule.Operator == "==" || rule.Operator == ">=" || rule.Operator == "<=" || rule.Operator == "<" || rule.Operator == ">" || rule.Operator == "!=" {
// 濡傛灉鏄笉瑙勭煩鐨勮繛鎺ョ缁熺粺杩斿洖false 瑙勫垯涔熷彧鑳藉垽鏂汉鑴哥殑鐩镐技搴︼紝鎵�浠ヤ笉瀛樺湪鍒殑杩炴帴绗�
if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔�
@@ -647,13 +647,13 @@
var formula string
if rule.SdkArgAlias == "score" {
formula = strconv.FormatFloat(arg.Score, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
- log.Println("褰撳墠鐩镐技搴﹀皬鍏紡锛�", formula)
+ logger.Info("褰撳墠鐩镐技搴﹀皬鍏紡锛�", formula)
} else if rule.SdkArgAlias == "proportion" {
formula = strconv.FormatFloat(arg.Proportion, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
- log.Println("褰撳墠鍗犳瘮灏忓叕寮忥細", formula)
+ logger.Info("褰撳墠鍗犳瘮灏忓叕寮忥細", formula)
} else {
formula = strconv.FormatFloat(arg.Size, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
- log.Println("褰撳墠灏哄灏忓叕寮忥細", formula)
+ logger.Info("褰撳墠灏哄灏忓叕寮忥細", formula)
}
expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -664,7 +664,7 @@
am.targetNum = len(am.filterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
}
if am.targetNum > 0 {
- log.Println("锛侊紒锛侊紒锛侊紒锛侊紒锛佷汉鑴告娴嬫垚鍔�")
+ logger.Info("锛侊紒锛侊紒锛侊紒锛侊紒锛佷汉鑴告娴嬫垚鍔�")
return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "true", rule.Sort}
} else {
return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort}
@@ -682,7 +682,7 @@
// 澶勭悊鐨勯兘鏄痽olo鏁版嵁
if rule.SdkId == am.sdkId && rule.PolygonId == am.areaId { // 棣栧厛杩欐潯瑙勫垯寰楁槸杩欎釜绠楁硶鐨勮鍒欙紝鍏舵瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓�
if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔�
- log.Println("----------褰撳墠鏉′欢瑙勫垯锛�---------", rule)
+ logger.Info("----------褰撳墠鏉′欢瑙勫垯锛�---------", rule)
var args []Arg
if rule.RuleWithPre == "&&" {
args = am.filterData
@@ -695,13 +695,13 @@
var formula string
if rule.SdkArgAlias == "score" {
formula = strconv.FormatFloat(arg.Score, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
- log.Println("褰撳墠鐩镐技搴﹀皬鍏紡锛�", formula)
+ logger.Info("褰撳墠鐩镐技搴﹀皬鍏紡锛�", formula)
} else if rule.SdkArgAlias == "proportion" {
formula = strconv.FormatFloat(arg.Proportion, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
- log.Println("褰撳墠鍗犳瘮灏忓叕寮忥細", formula)
+ logger.Info("褰撳墠鍗犳瘮灏忓叕寮忥細", formula)
} else {
formula = strconv.FormatFloat(arg.Size, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
- log.Println("褰撳墠灏哄灏忓叕寮忥細", formula)
+ logger.Info("褰撳墠灏哄灏忓叕寮忥細", formula)
}
expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -758,7 +758,7 @@
// num++
// }
// }
-// log.Println("鐪嬬湅鍖哄煙鍐呯鍚堟潯浠剁殑鐩爣鏁伴噺锛�----------", num)
+// logger.Println("鐪嬬湅鍖哄煙鍐呯鍚堟潯浠剁殑鐩爣鏁伴噺锛�----------", num)
// formula := strconv.Itoa(num) + " " + ">" + "0"
// expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
// result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -804,13 +804,13 @@
func timeRuleResult(rule *protomsg.Rule, am *AreaMap) LittleRuleResult {
if rule.PolygonId == am.areaId && rule.SdkId == am.sdkId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓�
if rule.SdkArgAlias == "time_rule" { // 鍒ゆ柇鏄惁绗﹀悎鏃堕棿瑙勫垯
- log.Println("----------褰撳墠鏃堕棿瑙勫垯锛�---------", rule)
+ logger.Info("----------褰撳墠鏃堕棿瑙勫垯锛�---------", rule)
// 鏍规嵁鏀惧�煎瓧娈甸噷瀛樼殑鏃堕棿瑙勫垯鐨刬d鍘诲彟涓�涓〃閲屾煡闇�瑕佹瘮瀵圭殑鏃堕棿娈碉紙姣斿褰撳墠鏃堕棿鏄懆涓夛紝搴旀牴鎹尯鍩焛d鏌ュ嚭鍏跺懆涓夌殑鍑犱釜甯冮槻鏃堕棿娈碉紝鏁扮粍锛�
//fmt.Println("鏃堕棿瑙勫垯鐨勬祴璇�")
now := time.Now()
index := getIndexOfWeek(now.Weekday().String())
timeList := GetTimeById(rule.SdkArgValue, index)
- log.Println("褰撳ぉ鐨勬椂闂存闆嗗悎锛�----------", timeList)
+ logger.Info("褰撳ぉ鐨勬椂闂存闆嗗悎锛�----------", timeList)
//fmt.Println("浠庢暟鎹簱涓煡鍑虹殑鏃堕棿瑙勫垯锛�", timeList)
// 鍒ゆ柇鍥剧墖鏁版嵁鐨勬椂闂存槸鍚︾鍚堝綋鍓嶈鍒� 鍦ㄤ竴涓嵆涓簍rue锛屽叏涓嶅湪涓篺alse
@@ -837,12 +837,12 @@
flag := "true"
for _, timeSlot := range timeList {
formula := "'" + timeSlot.Start + "'" + " < " + "'" + am.time + "'"
- log.Println("-----------------鏃堕棿瑙勫垯涓嶆弧瓒崇殑鍏紡start锛�", formula)
+ logger.Info("-----------------鏃堕棿瑙勫垯涓嶆弧瓒崇殑鍏紡start锛�", formula)
expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
formula1 := "'" + timeSlot.End + "'" + " > " + "'" + am.time + "'"
- log.Println("-----------------鏃堕棿瑙勫垯涓嶆弧瓒崇殑鍏紡end锛�", formula1)
+ logger.Info("-----------------鏃堕棿瑙勫垯涓嶆弧瓒崇殑鍏紡end锛�", formula1)
expression1, _ := govaluate.NewEvaluableExpression(formula1) // 寰楀埌鏁板鍏紡
result1, _ := expression1.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
if result.(bool) && result1.(bool) {
@@ -893,7 +893,7 @@
json.Unmarshal([]byte(cameraTimeRule.TimeRule), &timeRangeList)
for _, timerange := range timeRangeList {
if timerange.Day == index {
- //log.Println("鍙栧埌鐨勬椂闂磋鍒欙細", timerange.TimeRange)
+ //logger.Println("鍙栧埌鐨勬椂闂磋鍒欙細", timerange.TimeRange)
return timerange.TimeRange
}
}
diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index 644a6a5..84f1129 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -2,8 +2,7 @@
import (
"fmt"
- "log"
- "os"
+ "ruleprocess/logger"
"time"
)
@@ -40,13 +39,13 @@
for _, timeEle := range TimeEleList {
if timeEle.N > 0 {
timeEle.N = timeEle.N - 1
- log.Println("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�",timeEle.N)
+ logger.Info("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�",timeEle.N)
}
}
case stop := <-stopChan:
if stop {
fmt.Println("瀹氭椂鍣ㄧ粨鏉�")
- os.Exit(0)
+ //os.Exit(0)
}
}
}
--
Gitblit v1.8.0