|
|
@ -79,6 +79,12 @@ func NewFileLogger(path, name string, flushInterval time.Duration, fileSplitSize |
|
|
|
flushInterval: flushInterval, |
|
|
|
flushInterval: flushInterval, |
|
|
|
fileSplitSize: fileSplitSize, |
|
|
|
fileSplitSize: fileSplitSize, |
|
|
|
bufferSize: bufferSize, |
|
|
|
bufferSize: bufferSize, |
|
|
|
|
|
|
|
writer: &bufferWriter{ |
|
|
|
|
|
|
|
logPath: path, |
|
|
|
|
|
|
|
logName: name, |
|
|
|
|
|
|
|
maxFileSize: fileSplitSize, |
|
|
|
|
|
|
|
bufferSize: bufferSize, |
|
|
|
|
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
go writer.flushDaemon() |
|
|
|
go writer.flushDaemon() |
|
|
|
return writer |
|
|
|
return writer |
|
|
@ -106,25 +112,12 @@ func (w *mFileLogger) Write(msg []byte) (n int, err error) { |
|
|
|
w.mu.Lock() |
|
|
|
w.mu.Lock() |
|
|
|
defer w.mu.Unlock() |
|
|
|
defer w.mu.Unlock() |
|
|
|
|
|
|
|
|
|
|
|
writer := w.writer |
|
|
|
if err = w.writer.checkRotate(time.Now()); err != nil { |
|
|
|
|
|
|
|
|
|
|
|
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 { |
|
|
|
|
|
|
|
fmt.Println("[logkit] check rotate err: " + err.Error()) |
|
|
|
fmt.Println("[logkit] check rotate err: " + err.Error()) |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
w.putBuffer(buf) |
|
|
|
w.putBuffer(buf) |
|
|
|
return writer.Write(buf.Bytes()) |
|
|
|
return w.writer.Write(buf.Bytes()) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (bufferW *bufferWriter) Write(p []byte) (int, error) { |
|
|
|
func (bufferW *bufferWriter) Write(p []byte) (int, error) { |
|
|
|