Skip to content

Commit ca0b172

Browse files
committed
Fixed trace function
1 parent 9589249 commit ca0b172

File tree

4 files changed

+38
-39
lines changed

4 files changed

+38
-39
lines changed

debug/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ func main() {
1313
w.SetLevel(log.DEBUG)
1414
log.SetWriters([]log.Writer{w})
1515
*/
16+
log.SetTrace(true)
1617
os.Setenv("LOG_CONFIG", "./config.properties")
1718

1819
log.Debug("Debug")

file_writer.go

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import (
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

6664
type 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
7370
func (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

8480
func (fw *fileWriter) SetLevel(level Level) {
@@ -87,15 +83,7 @@ func (fw *fileWriter) SetLevel(level Level) {
8783
}
8884

8985
func (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

logger.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package log
33
import (
44
"fmt"
55
"os"
6+
"runtime"
67
"strings"
8+
"time"
79

810
"github.com/magiconair/properties"
911
)
@@ -156,3 +158,27 @@ func LoadLogProperties() {
156158
SetWriters(logWriters)
157159
}
158160
}
161+
162+
func preformat(
163+
writerLevel Level,
164+
messageLevel Level,
165+
format string,
166+
do func(preFormat string),
167+
) {
168+
if writerLevel < messageLevel {
169+
return
170+
}
171+
172+
var preFormatStr string
173+
var preFormatArgs []interface{}
174+
if IsTraceEnabled() {
175+
_, file, line, _ := runtime.Caller(4)
176+
preFormatStr = "%s %s %s:%d %s\n"
177+
preFormatArgs = []interface{}{time.Now().Format(time.RFC3339), messageLevel.StringColor(), file, line, format}
178+
} else {
179+
preFormatStr = "%s %s %s\n"
180+
preFormatArgs = []interface{}{time.Now().Format(time.RFC3339), messageLevel.StringColor(), format}
181+
}
182+
183+
do(fmt.Sprintf(preFormatStr, preFormatArgs...))
184+
}

stdout_writer.go

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package log
22

33
import (
44
"fmt"
5-
"runtime"
6-
"time"
75
)
86

97
// WriterStdout writes to the standard output
@@ -18,27 +16,13 @@ func NewStdoutWriter(level Level) Writer {
1816

1917
// WriteLog implementation of logger.Writer
2018
func (w *WriterStdout) WriteLog(
21-
mLevel Level,
19+
messageLevel Level,
2220
format string,
2321
args []interface{},
2422
) {
25-
if w.level < mLevel {
26-
return
27-
}
28-
29-
var preFormatStr string
30-
var preFormatArgs []interface{}
31-
if IsTraceEnabled() {
32-
_, file, line, _ := runtime.Caller(4)
33-
preFormatStr = "%s %s %s:%d %s\n"
34-
preFormatArgs = []interface{}{time.Now().Format(time.RFC3339), mLevel.StringColor(), file, line, format}
35-
} else {
36-
preFormatStr = "%s %s %s\n"
37-
preFormatArgs = []interface{}{time.Now().Format(time.RFC3339), mLevel.StringColor(), format}
38-
}
39-
40-
preFormat := fmt.Sprintf(preFormatStr, preFormatArgs...)
41-
fmt.Printf(preFormat, args...)
23+
preformat(w.level, messageLevel, format, func(preFormat string) {
24+
fmt.Printf(preFormat, args...)
25+
})
4226
}
4327

4428
// SetLevel sets the writer level

0 commit comments

Comments
 (0)