From 0d03ecc2cb11330b5a3267725ef8f4a3ff744df6 Mon Sep 17 00:00:00 2001 From: Thibault bui Koechlin Date: Wed, 27 May 2020 11:51:24 +0200 Subject: [PATCH] move the setLogger config and ConfigureLogger to be part of types for reuse accross modules --- cmd/crowdsec/main.go | 31 +--------------------- pkg/types/utils.go | 62 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 30 deletions(-) diff --git a/cmd/crowdsec/main.go b/cmd/crowdsec/main.go index c1d4b31e6..319869da5 100644 --- a/cmd/crowdsec/main.go +++ b/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()) } diff --git a/pkg/types/utils.go b/pkg/types/utils.go index d71dced6e..e221e4a38 100644 --- a/pkg/types/utils.go +++ b/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 +}