summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2017-06-19 08:44:04 -0700
committerGitHub <noreply@github.com>2017-06-19 08:44:04 -0700
commit36f216cb7cb16958d98b3d77e121198596fd2213 (patch)
treeac2a5b79494749b3dffc2f5778092f2529c98d1a /utils
parentfe48987a32fbd600458edd4e81318071ae558ba4 (diff)
downloadchat-36f216cb7cb16958d98b3d77e121198596fd2213.tar.gz
chat-36f216cb7cb16958d98b3d77e121198596fd2213.tar.bz2
chat-36f216cb7cb16958d98b3d77e121198596fd2213.zip
PLT-6080 moving clustering to memberlist (#6499)
* PLT-6080 adding cluster discovery service * Adding memberlist lib * Adding memberlist lib * WIP * WIP * WIP * WIP * Rolling back config changes * Fixing make file * Fixing config for cluster * WIP * Fixing system console for clustering * Fixing default config * Fixing config * Fixing system console for clustering * Tweaking hub setting * Bumping up time * merging vendor dir * Updating vendor dir * Fixing unit test * Fixing bad merge * Remove some testing code * Moving comment * PLT-6868 adding db ping retry * Removing unused loc strings * Adding defer to cancel
Diffstat (limited to 'utils')
-rw-r--r--utils/config_test.go19
-rw-r--r--utils/redirect_std_log.go65
2 files changed, 84 insertions, 0 deletions
diff --git a/utils/config_test.go b/utils/config_test.go
index bce85d2ae..3032766ec 100644
--- a/utils/config_test.go
+++ b/utils/config_test.go
@@ -6,6 +6,7 @@ package utils
import (
"os"
"testing"
+ "time"
"github.com/mattermost/platform/model"
)
@@ -59,7 +60,25 @@ func TestConfigFromEnviroVars(t *testing.T) {
if Cfg.TeamSettings.SiteName != "Mattermost" {
t.Fatal("should have been reset")
}
+}
+
+func TestRedirectStdLog(t *testing.T) {
+ TranslationsPreInit()
+ LoadConfig("config.json")
+ InitTranslations(Cfg.LocalizationSettings)
+
+ log := NewRedirectStdLog("test", false)
+
+ log.Println("[DEBUG] this is a message")
+ log.Println("[DEBG] this is a message")
+ log.Println("[WARN] this is a message")
+ log.Println("[ERROR] this is a message")
+ log.Println("[EROR] this is a message")
+ log.Println("[ERR] this is a message")
+ log.Println("[INFO] this is a message")
+ log.Println("this is a message")
+ time.Sleep(time.Second * 1)
}
func TestAddRemoveConfigListener(t *testing.T) {
diff --git a/utils/redirect_std_log.go b/utils/redirect_std_log.go
new file mode 100644
index 000000000..4fbfcf8ec
--- /dev/null
+++ b/utils/redirect_std_log.go
@@ -0,0 +1,65 @@
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package utils
+
+import (
+ "bufio"
+ "log"
+ "os"
+ "strings"
+
+ l4g "github.com/alecthomas/log4go"
+)
+
+type RedirectStdLog struct {
+ reader *os.File
+ writer *os.File
+ system string
+ ignoreDebug bool
+}
+
+func NewRedirectStdLog(system string, ignoreDebug bool) *log.Logger {
+ r, w, _ := os.Pipe()
+ logger := &RedirectStdLog{
+ reader: r,
+ writer: w,
+ system: system,
+ ignoreDebug: ignoreDebug,
+ }
+
+ go func(l *RedirectStdLog) {
+ scanner := bufio.NewScanner(l.reader)
+ for scanner.Scan() {
+ line := scanner.Text()
+
+ if strings.Index(line, "[DEBUG]") == 0 {
+ if !ignoreDebug {
+ l4g.Debug("%v%v", system, line[7:])
+ }
+ } else if strings.Index(line, "[DEBG]") == 0 {
+ if !ignoreDebug {
+ l4g.Debug("%v%v", system, line[6:])
+ }
+ } else if strings.Index(line, "[WARN]") == 0 {
+ l4g.Info("%v%v", system, line[6:])
+ } else if strings.Index(line, "[ERROR]") == 0 {
+ l4g.Error("%v%v", system, line[7:])
+ } else if strings.Index(line, "[EROR]") == 0 {
+ l4g.Error("%v%v", system, line[6:])
+ } else if strings.Index(line, "[ERR]") == 0 {
+ l4g.Error("%v%v", system, line[5:])
+ } else if strings.Index(line, "[INFO]") == 0 {
+ l4g.Info("%v%v", system, line[6:])
+ } else {
+ l4g.Info("%v %v", system, line)
+ }
+ }
+ }(logger)
+
+ return log.New(logger.writer, "", 0)
+}
+
+func (l *RedirectStdLog) Write(p []byte) (n int, err error) {
+ return l.writer.Write(p)
+}