Quellcode durchsuchen

move the setLogger config and ConfigureLogger to be part of types for reuse accross modules

Thibault bui Koechlin vor 5 Jahren
Ursprung
Commit
a06f8373ae
2 geänderte Dateien mit 63 neuen und 30 gelöschten Zeilen
  1. 1 30
      cmd/crowdsec/main.go
  2. 62 0
      pkg/types/utils.go

+ 1 - 30
cmd/crowdsec/main.go

@@ -1,7 +1,6 @@
 package main
 
 import (
-	"fmt"
 	"strings"
 
 	"io/ioutil"
@@ -19,7 +18,6 @@ import (
 
 	log "github.com/sirupsen/logrus"
 
-	"gopkg.in/natefinch/lumberjack.v2"
 	"gopkg.in/tomb.v2"
 	"gopkg.in/yaml.v2"
 )
@@ -39,33 +37,6 @@ var (
 	lastProcessedItem time.Time /*keep track of last item timestamp in time-machine. it is used to GC buckets when we dump them.*/
 )
 
-func configureLogger(logMode string, logFolder string, logLevel log.Level) error {
-	/*Configure logs*/
-	if logMode == "file" {
-		log.SetOutput(&lumberjack.Logger{
-			Filename:   logFolder + "/crowdsec.log",
-			MaxSize:    500, //megabytes
-			MaxBackups: 3,
-			MaxAge:     28,   //days
-			Compress:   true, //disabled by default
-		})
-		log.SetFormatter(&log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true})
-	} else if logMode != "stdout" {
-		return fmt.Errorf("log mode '%s' unknown", logMode)
-	}
-
-	log.Printf("setting loglevel to %s", logLevel)
-	log.SetLevel(logLevel)
-	log.SetFormatter(&log.TextFormatter{FullTimestamp: true})
-	if logLevel >= log.InfoLevel {
-		log.SetFormatter(&log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true})
-	}
-	if logLevel >= log.DebugLevel {
-		log.SetReportCaller(true)
-	}
-	return nil
-}
-
 func main() {
 	var (
 		err                 error
@@ -92,7 +63,7 @@ func main() {
 		log.Fatalf(err.Error())
 	}
 
-	if err = configureLogger(cConfig.LogMode, cConfig.LogFolder, cConfig.LogLevel); err != nil {
+	if err = types.SetDefaultLoggerConfig(cConfig.LogMode, cConfig.LogFolder, cConfig.LogLevel); err != nil {
 		log.Fatal(err.Error())
 	}
 

+ 62 - 0
pkg/types/utils.go

@@ -2,7 +2,11 @@ package types
 
 import (
 	"encoding/binary"
+	"fmt"
 	"net"
+
+	log "github.com/sirupsen/logrus"
+	"gopkg.in/natefinch/lumberjack.v2"
 )
 
 func IP2Int(ip net.IP) uint32 {
@@ -40,3 +44,61 @@ func LastAddress(n *net.IPNet) net.IP {
 		ip[2]|^n.Mask[2],
 		ip[3]|^n.Mask[3])
 }
+
+var logMode string
+var logFolder string
+var logLevel log.Level
+
+func SetDefaultLoggerConfig(inlogMode string, inlogFolder string, inlogLevel log.Level) error {
+	logMode = inlogMode
+	logFolder = inlogFolder
+	logLevel = inlogLevel
+
+	/*Configure logs*/
+	if logMode == "file" {
+		log.SetOutput(&lumberjack.Logger{
+			Filename:   logFolder + "/crowdsec.log",
+			MaxSize:    500, //megabytes
+			MaxBackups: 3,
+			MaxAge:     28,   //days
+			Compress:   true, //disabled by default
+		})
+		log.SetFormatter(&log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true})
+	} else if logMode != "stdout" {
+		return fmt.Errorf("log mode '%s' unknown", logMode)
+	}
+	log.SetLevel(logLevel)
+	log.SetFormatter(&log.TextFormatter{FullTimestamp: true})
+	if logLevel >= log.InfoLevel {
+		log.SetFormatter(&log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true})
+	}
+	if logLevel >= log.DebugLevel {
+		log.SetReportCaller(true)
+	}
+	return nil
+}
+
+func ConfigureLogger(clog *log.Logger) error {
+	/*Configure logs*/
+	if logMode == "file" {
+		clog.SetOutput(&lumberjack.Logger{
+			Filename:   logFolder + "/crowdsec.log",
+			MaxSize:    500, //megabytes
+			MaxBackups: 3,
+			MaxAge:     28,   //days
+			Compress:   true, //disabled by default
+		})
+		clog.SetFormatter(&log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true})
+	} else if logMode != "stdout" {
+		return fmt.Errorf("log mode '%s' unknown", logMode)
+	}
+	clog.SetLevel(logLevel)
+	clog.SetFormatter(&log.TextFormatter{FullTimestamp: true})
+	if logLevel >= log.InfoLevel {
+		clog.SetFormatter(&log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true})
+	}
+	if logLevel >= log.DebugLevel {
+		clog.SetReportCaller(true)
+	}
+	return nil
+}