From eb3ee3ec087e3dcc46f8d3204e4619de82e0af5d Mon Sep 17 00:00:00 2001 From: Thinh Tran Date: Wed, 21 Dec 2016 00:18:51 +0700 Subject: [PATCH] Change Gelf Log for chaika --- chaika/monitor.go | 1 - courier/courier.go | 6 ++++-- courier/gelf.go | 51 +++++++++++++++++++++++++++------------------- version.go | 2 +- 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/chaika/monitor.go b/chaika/monitor.go index f743b94..832776b 100644 --- a/chaika/monitor.go +++ b/chaika/monitor.go @@ -37,5 +37,4 @@ func SendOverMonitor(message string) { } i++ } - fmt.Println(handlers) } diff --git a/courier/courier.go b/courier/courier.go index a49fc6e..7179042 100644 --- a/courier/courier.go +++ b/courier/courier.go @@ -12,11 +12,13 @@ import ( type Courier interface { Send(serviceName string, catalog string, level string, message string) + GetHost() string + GetPort() int } type LogInfo struct { Host string - Port int64 + Port int Type string } @@ -74,7 +76,7 @@ func GetLogOutput(serviceName string) LogInfo { CheckError(err) if portPair != nil { - logInfo.Port, _ = strconv.ParseInt(string(portPair.Value), 10, 64) + logInfo.Port, _ = strconv.Atoi(string(portPair.Value)) } typePair, _, err := kv.Get(serviceName+"/log/type", nil) diff --git a/courier/gelf.go b/courier/gelf.go index 6eccf3d..03415c0 100644 --- a/courier/gelf.go +++ b/courier/gelf.go @@ -1,18 +1,21 @@ package courier import ( - "encoding/json" "fmt" - "github.com/robertkowalski/graylog-golang" "time" + + "github.com/duythinht/gelf" + "github.com/duythinht/gelf/client" ) type Gelf struct { - Client *gelf.Gelf + Client *client.Gelf ServiceName string + Host string + Port int } -var levels = map[string]int32{ +var levels = map[string]int{ "DEBUG": 0, "INFO": 1, "WARN": 2, @@ -21,35 +24,41 @@ var levels = map[string]int32{ "UNKNOWN": 5, } -func CreateGelf(serviceName string, graylogHost string, graylogPort int64) Courier { +func CreateGelf(serviceName string, graylogHost string, graylogPort int) Courier { fmt.Println("Next logs of", serviceName, "will be ship to", graylogHost, graylogPort) client := Gelf{ - Client: gelf.New(gelf.Config{ - GraylogPort: int(graylogPort), - GraylogHostname: graylogHost, + Client: client.New(client.Config{ + GraylogHost: graylogHost, + GraylogPort: graylogPort, }), ServiceName: serviceName, + Host: graylogHost, + Port: graylogPort, } return client } +func (g Gelf) GetHost() string { + return g.Host +} + +func (g Gelf) GetPort() int { + return g.Port +} + func (g Gelf) Send(serviceName string, catalog string, level string, message string) { - logObj := map[string]interface{}{ - "host": "[" + serviceName + "][" + catalog + "]", - "timestamp": time.Now().Unix(), - "message": message, - } + + host := fmt.Sprintf("[%s][%s]", serviceName, catalog) + + timestamp := time.Now().Unix() + + gm := gelf.Create(message).SetHost(host).SetTimestamp(timestamp) if lvlNumber, ok := levels[level]; ok { - logObj["level"] = lvlNumber + gm.SetLevel(lvlNumber) } else { - logObj["level"] = 5 + gm.SetLevel(5) } - logBuff, err := json.Marshal(logObj) - if err != nil { - fmt.Printf(err.Error()) - } else { - g.Client.Log(string(logBuff)) - } + g.Client.Send(gm.ToJSON()) } diff --git a/version.go b/version.go index 372fdc2..27e3f4b 100644 --- a/version.go +++ b/version.go @@ -1,3 +1,3 @@ package main -const VERSION = "1.3.1" +const VERSION = "1.4.0"