From 59b903d557532abc228860fbf5fb93641fd1f834 Mon Sep 17 00:00:00 2001 From: Hubery Date: Wed, 15 Jul 2015 17:00:48 +0800 Subject: [PATCH] set DoRotate fname like xx.2013-01-01.2.log fix fname,by extension to identify the file type on mac and windows. --- logs/file.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/logs/file.go b/logs/file.go index 2d3449ce..84a8c4f3 100644 --- a/logs/file.go +++ b/logs/file.go @@ -205,15 +205,20 @@ func (w *FileLogWriter) lines() (int, error) { } // DoRotate means it need to write file in new file. -// new file name like xx.log.2013-01-01.2 +// new file name like xx.2013-01-01.2.log func (w *FileLogWriter) DoRotate() error { _, err := os.Lstat(w.Filename) if err == nil { // file exists // Find the next available number num := 1 fname := "" + suffix := filepath.Ext(w.Filename) + filenameOnly := strings.TrimSuffix(w.Filename, suffix) + if suffix == "" { + suffix = ".log" + } for ; err == nil && num <= 999; num++ { - fname = w.Filename + fmt.Sprintf(".%s.%03d", time.Now().Format("2006-01-02"), num) + fname = filenameOnly + fmt.Sprintf(".%s.%03d%s", time.Now().Format("2006-01-02"), num, suffix) _, err = os.Lstat(fname) } // return error if the last file checked still existed