diff --git a/filelog.go b/filelog.go index a186018..6ae0df0 100644 --- a/filelog.go +++ b/filelog.go @@ -79,6 +79,12 @@ func NewFileLogger(path, name string, flushInterval time.Duration, fileSplitSize flushInterval: flushInterval, fileSplitSize: fileSplitSize, bufferSize: bufferSize, + writer: &bufferWriter{ + logPath: path, + logName: name, + maxFileSize: fileSplitSize, + bufferSize: bufferSize, + }, } go writer.flushDaemon() return writer @@ -106,25 +112,12 @@ func (w *mFileLogger) Write(msg []byte) (n int, err error) { w.mu.Lock() defer w.mu.Unlock() - writer := w.writer - - if writer == nil { - w.writer = &bufferWriter{ - logPath: w.filepath, - logName: w.name, - maxFileSize: w.fileSplitSize, - bufferSize: w.bufferSize, - } - writer = w.writer - } - - if err = writer.checkRotate(time.Now()); err != nil { + if err = w.writer.checkRotate(time.Now()); err != nil { fmt.Println("[logkit] check rotate err: " + err.Error()) return } - w.putBuffer(buf) - return writer.Write(buf.Bytes()) + return w.writer.Write(buf.Bytes()) } func (bufferW *bufferWriter) Write(p []byte) (int, error) {