44 "fmt"
55 "os"
66 "path"
7- "runtime"
8- "time"
97)
108
119// FileSize represents the size of a file
@@ -64,21 +62,19 @@ func NewFileWriter(logDir, fileName string, maxSize FileSize, maxNumFiles int, l
6462}
6563
6664type writeLogMsg struct {
67- mLevel Level
68- format string
69- args []interface {}
65+ preFormat string
66+ args []interface {}
7067}
7168
7269// WriteLog implementation of logger.Writer
7370func (fw * fileWriter ) WriteLog (
74- mLevel Level ,
71+ messageLevel Level ,
7572 format string ,
7673 args []interface {},
7774) {
78- if fw .level < mLevel {
79- return
80- }
81- fw .logQueue <- & writeLogMsg {mLevel , format , args }
75+ preformat (fw .level , messageLevel , format , func (preFormat string ) {
76+ fw .logQueue <- & writeLogMsg {preFormat , args }
77+ })
8278}
8379
8480func (fw * fileWriter ) SetLevel (level Level ) {
@@ -87,15 +83,7 @@ func (fw *fileWriter) SetLevel(level Level) {
8783}
8884
8985func (fw * fileWriter ) writeLog (m * writeLogMsg ) {
90- var preFormat string
91- if IsTraceEnabled () {
92- _ , file , line , _ := runtime .Caller (4 )
93- preFormat = fmt .Sprintf ("%s %s %s:%d %s\n " , time .Now ().Format (time .RFC3339 ), m .mLevel , file , line , m .format )
94- } else {
95- preFormat = fmt .Sprintf ("%s %s %s\n " , time .Now ().Format (time .RFC3339 ), m .mLevel , m .format )
96- }
97-
98- str := fmt .Sprintf (preFormat , m .args ... )
86+ str := fmt .Sprintf (m .preFormat , m .args ... )
9987 fw .fileLen += int64 (len (str ))
10088 fmt .Fprint (fw .file , str )
10189
0 commit comments