fixbug daemon rotate

master v0.1.7
guohao 5 years ago
parent 6b640921d3
commit c72713582b
  1. 18
      filelog.go
  2. 5
      gokit.go
  3. 9
      gokit_test.go

@ -72,16 +72,26 @@ func (w *mFileLogger) Close() error {
return w.flush() return w.flush()
} }
func NewFileLogger(path, name string, flushInterval time.Duration, fileSplitSize uint64, bufferSize int) io.Writer { func NewFileLogger(path, name string, flushInterval time.Duration, fileSplitSize uint64, bufferSize int) (writer io.Writer, err error) {
writer := &mFileLogger{ writer = &mFileLogger{
filepath: path, filepath: path,
name: name, name: name,
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() err = writer.(*mFileLogger).writer.rotate(time.Now(), 0)
return writer if err != nil {
return
}
go writer.(*mFileLogger).flushDaemon()
return
} }
func (w *mFileLogger) flushDaemon() { func (w *mFileLogger) flushDaemon() {

@ -85,7 +85,10 @@ func Init(_channel Channel, name string, level Level, _alsoStdout bool, _withCal
if logPath == "" { if logPath == "" {
logPath = "/data/logs/" + logName + ".log" logPath = "/data/logs/" + logName + ".log"
} }
logWriter = NewFileLogger(logPath, logName, time.Second*5, 1204*1024*1800, 4*1024) logWriter, err = NewFileLogger(logPath, logName, time.Second*5, 1204*1024*1800, 4*1024)
if err != nil {
return
}
} }
if logWriter == nil && channel == SYSLOG { if logWriter == nil && channel == SYSLOG {
logWriter, _ = NewSyslogWriter("", "", level, logName) logWriter, _ = NewSyslogWriter("", "", level, logName)

@ -1,7 +1,6 @@
package logkit package logkit
import ( import (
"flag"
"fmt" "fmt"
"strconv" "strconv"
"testing" "testing"
@ -9,14 +8,14 @@ import (
) )
func init() { func init() {
var l Level
flag.Int("level", int(l) , "l")
flag.Parse()
} }
func BenchmarkGoKit(b *testing.B) { func BenchmarkGoKit(b *testing.B) {
defer Exit() defer Exit()
Init(FIlE, "test", LevelDebug, true, BasePath) SetPath("/")
_, err := Init(FIlE, "test", LevelDebug, true, BasePath)
fmt.Printf("===%s", err)
b.ResetTimer() b.ResetTimer()
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
Info("test " + strconv.FormatInt(int64(i), 10)) Info("test " + strconv.FormatInt(int64(i), 10))

Loading…
Cancel
Save