From: qydysky Date: Wed, 12 Aug 2020 17:31:38 +0000 (+0800) Subject: 45 X-Git-Tag: v0.0.2~42 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=e40d9b0a761143f3b22660f09509298e3622f27c;p=part%2F.git 45 --- diff --git a/Log.go b/Log.go index 67c95e6..1b6c1e5 100644 --- a/Log.go +++ b/Log.go @@ -4,7 +4,7 @@ import ( "io" "os" "log" - "syscall" + "sync" ) type logl struct { @@ -12,6 +12,7 @@ type logl struct { channelN chan int channel chan interface{} wantLog chan bool + sync.Mutex tracef *log.Logger // 记录所有日志 infof *log.Logger // 重要的信息 warningf *log.Logger // 需要注意的信息 @@ -54,22 +55,16 @@ func (l *logl) New(fileP string) { continue } + l.Lock() File().NewPath(fileName) file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { + l.Unlock() l.E("Failed to open log file:", err) for len(l.wantLog) != 0 {<- l.wantLog} continue } - - err = syscall.Flock(int(file.Fd()), syscall.LOCK_EX) - if err != nil { - l.E("cannot flock", fileName, err) - file.Close() - for len(l.wantLog) != 0 {<- l.wantLog} - continue - } l.tracef = log.New(io.MultiWriter(file, os.Stdout), "TRACE: "+fileName+" ", @@ -103,12 +98,8 @@ func (l *logl) New(fileP string) { } } - err = syscall.Flock(int(file.Fd()), syscall.LOCK_UN) - if err != nil { - log.Fatalln("cannot Unflock", fileName, err) - } - file.Close() + l.Unlock() for len(l.wantLog) != 0 {<- l.wantLog} }