OSDN Git Service

add clear lock file (#364)
authorwyjDoraemon <46176410+wyjDoraemon@users.noreply.github.com>
Tue, 30 Jul 2019 03:17:38 +0000 (11:17 +0800)
committerPaladz <yzhu101@uottawa.ca>
Tue, 30 Jul 2019 03:17:38 +0000 (11:17 +0800)
* add clear lock file

* log.Fatal

* fix

* fix1

log/log.go
node/node.go
p2p/connection/connection.go

index 43bcc9c..ebd979f 100644 (file)
@@ -1,7 +1,11 @@
 package log
 
 import (
 package log
 
 import (
+       "fmt"
+       "io/ioutil"
+       "os"
        "path/filepath"
        "path/filepath"
+       "strings"
        "sync"
        "time"
 
        "sync"
        "time"
 
@@ -18,9 +22,17 @@ const (
 
 var defaultFormatter = &logrus.TextFormatter{DisableColors: true}
 
 
 var defaultFormatter = &logrus.TextFormatter{DisableColors: true}
 
-func InitLogFile(config *config.Config) {
-       hook := newBtmHook(config.LogDir())
+func InitLogFile(config *config.Config) error {
+       logPath := config.LogDir()
+       if err := clearLockFiles(logPath); err != nil {
+               return err
+       }
+
+       hook := newBtmHook(logPath)
        logrus.AddHook(hook)
        logrus.AddHook(hook)
+       logrus.SetOutput(ioutil.Discard)//控制台不输出
+       fmt.Printf("all logs are output in the %s directory\n", logPath)
+       return nil
 }
 
 type BtmHook struct {
 }
 
 type BtmHook struct {
@@ -60,6 +72,22 @@ func (hook *BtmHook) ioWrite(entry *logrus.Entry) error {
        return err
 }
 
        return err
 }
 
+func clearLockFiles(logPath string) error {
+       files, err := ioutil.ReadDir(logPath)
+       if err != nil {
+               return err
+       }
+
+       for _, file := range files {
+               if ok := strings.HasSuffix(file.Name(), "_lock"); ok {
+                       if err := os.Remove(filepath.Join(logPath, file.Name()));err!=nil{
+                               return err
+                       }
+               }
+       }
+       return nil
+}
+
 func (hook *BtmHook) Fire(entry *logrus.Entry) error {
        hook.lock.Lock()
        defer hook.lock.Unlock()
 func (hook *BtmHook) Fire(entry *logrus.Entry) error {
        hook.lock.Lock()
        defer hook.lock.Unlock()
index beafcf0..c160f17 100644 (file)
@@ -66,7 +66,9 @@ func NewNode(config *cfg.Config) *Node {
                cmn.Exit(cmn.Fmt("Failed to load federated information:[%s]", err.Error()))
        }
 
                cmn.Exit(cmn.Fmt("Failed to load federated information:[%s]", err.Error()))
        }
 
-       vaporLog.InitLogFile(config)
+       if err:=vaporLog.InitLogFile(config);err!=nil{
+               log.WithField("err",err).Fatalln("InitLogFile failed")
+       }
 
        log.WithFields(log.Fields{
                "module":             logModule,
 
        log.WithFields(log.Fields{
                "module":             logModule,
index 576be24..af5f645 100644 (file)
@@ -38,7 +38,7 @@ const (
        defaultRecvMessageCapacity = 22020096         // 21MB
        defaultRecvRate            = int64(104857600) // 100MB/s
        defaultSendTimeout         = 10 * time.Second
        defaultRecvMessageCapacity = 22020096         // 21MB
        defaultRecvRate            = int64(104857600) // 100MB/s
        defaultSendTimeout         = 10 * time.Second
-       logModule                  = "p2p/conn"
+       logModule                  = "p2pConn"
 )
 
 type receiveCbFunc func(chID byte, msgBytes []byte)
 )
 
 type receiveCbFunc func(chID byte, msgBytes []byte)