Kaynağa Gözat

wind down stuff

Thibault bui Koechlin 5 yıl önce
ebeveyn
işleme
dfa3124c1b
3 değiştirilmiş dosya ile 16 ekleme ve 6 silme
  1. 5 0
      cmd/crowdsec/serve.go
  2. 6 0
      pkg/sqlite/commit.go
  3. 5 6
      pkg/types/utils.go

+ 5 - 0
cmd/crowdsec/serve.go

@@ -8,6 +8,7 @@ import (
 
 	leaky "github.com/crowdsecurity/crowdsec/pkg/leakybucket"
 	"github.com/crowdsecurity/crowdsec/pkg/outputs"
+	"github.com/crowdsecurity/crowdsec/pkg/types"
 	log "github.com/sirupsen/logrus"
 
 	"github.com/sevlyar/go-daemon"
@@ -23,6 +24,10 @@ func reloadHandler(sig os.Signal) error {
 	if err := leaky.DumpBucketsStateAt("buckets_state.json", time.Now(), buckets); err != nil {
 		log.Fatalf("Failed dumping bucket state : %s", err)
 	}
+	//close logs
+	types.LogOutput.Close()
+	//todo : lumber jack
+	//todo : close sql tx
 
 	//reload configurations
 

+ 6 - 0
pkg/sqlite/commit.go

@@ -41,6 +41,12 @@ func (c *Context) AutoCommit() {
 			if err := c.Flush(); err != nil {
 				log.Warningf("error while flushing records: %s", err)
 			}
+			if ret := c.tx.Commit(); ret.Error != nil {
+				log.Warningf("failed to commit records : %v", ret.Error)
+			}
+			if err := c.tx.Close(); err != nil {
+				log.Warningf("error while closing tx : %s", err)
+			}
 			if err := c.Db.Close(); err != nil {
 				log.Warningf("error while closing db : %s", err)
 			}

+ 5 - 6
pkg/types/utils.go

@@ -5,7 +5,6 @@ import (
 	"encoding/binary"
 	"encoding/gob"
 	"fmt"
-	"io"
 	"net"
 
 	log "github.com/sirupsen/logrus"
@@ -49,7 +48,7 @@ func LastAddress(n *net.IPNet) net.IP {
 }
 
 var logFormatter log.Formatter
-var logOutput io.Writer
+var LogOutput *lumberjack.Logger //io.Writer
 var logLevel log.Level
 var logReportCaller bool
 
@@ -57,14 +56,14 @@ func SetDefaultLoggerConfig(cfgMode string, cfgFolder string, cfgLevel log.Level
 
 	/*Configure logs*/
 	if cfgMode == "file" {
-		logOutput = &lumberjack.Logger{
+		LogOutput = &lumberjack.Logger{
 			Filename:   cfgFolder + "/crowdsec.log",
 			MaxSize:    500, //megabytes
 			MaxBackups: 3,
 			MaxAge:     28,   //days
 			Compress:   true, //disabled by default
 		}
-		log.SetOutput(logOutput)
+		log.SetOutput(LogOutput)
 	} else if cfgMode != "stdout" {
 		return fmt.Errorf("log mode '%s' unknown", cfgMode)
 	}
@@ -83,8 +82,8 @@ func SetDefaultLoggerConfig(cfgMode string, cfgFolder string, cfgLevel log.Level
 
 func ConfigureLogger(clog *log.Logger) error {
 	/*Configure logs*/
-	if logOutput != nil {
-		clog.SetOutput(logOutput)
+	if LogOutput != nil {
+		clog.SetOutput(LogOutput)
 	}
 	if logReportCaller {
 		clog.SetReportCaller(true)