@@ -8,12 +8,13 @@ import (
88 "encoding/json"
99 "fmt"
1010 "path/filepath"
11- "strings"
11+
12+ "aahframework.org/essentials.v0-unstable"
1213)
1314
1415// Format flags used to define log message format for each log entry
1516const (
16- FmtFlagLevel fmtFlag = iota
17+ FmtFlagLevel ess. FmtFlag = iota
1718 FmtFlagTime
1819 FmtFlagUTCTime
1920 FmtFlagLongfile
@@ -38,13 +39,10 @@ type (
3839 // Format: "2006-01-02 15:04:05.000",
3940 // }
4041 FlagPart struct {
41- Flag fmtFlag
42+ Flag ess. FmtFlag
4243 Name string
4344 Format string
4445 }
45-
46- // FmtFlag type definition
47- fmtFlag uint8
4846)
4947
5048var (
6462 // line - outputs file line number: L23
6563 // message - outputs given message along supplied arguments if they present
6664 // custom - outputs string as-is into log entry
67- FmtFlags = map [string ]fmtFlag {
65+ FmtFlags = map [string ]ess. FmtFlag {
6866 "level" : FmtFlagLevel ,
6967 "time" : FmtFlagTime ,
7068 "utctime" : FmtFlagUTCTime ,
@@ -83,11 +81,11 @@ var (
8381// textFormatter formats the `Entry` object details as per log `pattern`
8482// For e.g.:
8583// 2016-07-02 22:26:01.530 INFO formatter_test.go L29 - Yes, I would love to see
86- func textFormatter (flags * [] FlagPart , entry * Entry ) []byte {
87- buf := getBuffer ()
88- defer putBuffer (buf )
84+ func textFormatter (flags []ess. FmtFlagPart , entry * Entry ) []byte {
85+ buf := acquireBuffer ()
86+ defer releaseBuffer (buf )
8987
90- for _ , part := range * flags {
88+ for _ , part := range flags {
9189 switch part .Flag {
9290 case FmtFlagLevel :
9391 buf .WriteString (fmt .Sprintf (part .Format , levelToLevelName [entry .Level ]))
@@ -101,7 +99,7 @@ func textFormatter(flags *[]FlagPart, entry *Entry) []byte {
10199 }
102100 buf .WriteString (fmt .Sprintf (part .Format , entry .File ))
103101 case FmtFlagLine :
104- buf .WriteString (fmt .Sprintf (part .Format , entry .Line ))
102+ buf .WriteString ("L" + fmt .Sprintf (part .Format , entry .Line ))
105103 case FmtFlagMessage :
106104 buf .WriteString (entry .Message )
107105 case FmtFlagCustom :
@@ -127,47 +125,11 @@ func jsonFormatter(entry *Entry) ([]byte, error) {
127125// Unexported methods
128126//___________________________________
129127
130- func applyFormatter (formatter string , flags * [] FlagPart , entry * Entry ) []byte {
128+ func applyFormatter (formatter string , flags []ess. FmtFlagPart , entry * Entry ) []byte {
131129 if formatter == textFmt {
132130 return textFormatter (flags , entry )
133131 }
134132
135133 lm , _ := jsonFormatter (entry )
136134 return lm
137135}
138-
139- // parseFlag it parses the log message formart into flag parts
140- // For e.g.:
141- // %time:2006-01-02 15:04:05.000 %level %custom:- %msg
142- func parseFlag (format string ) (* []FlagPart , error ) {
143- var flagParts []FlagPart
144- format = strings .TrimSpace (format )
145- formatFlags := strings .Split (format , flagSeparator )[1 :]
146- for _ , f := range formatFlags {
147- parts := strings .SplitN (strings .TrimSpace (f ), flagValueSeparator , 2 )
148- flag := fmtFlagByName (parts [0 ])
149- if flag == FmtFlagUnknown {
150- return nil , fmt .Errorf ("unrecognized log format flag: %v" , strings .TrimSpace (f ))
151- }
152-
153- part := FlagPart {Flag : flag , Name : parts [0 ]}
154- switch len (parts ) {
155- case 2 :
156- if flag == FmtFlagTime || flag == FmtFlagUTCTime ||
157- flag == FmtFlagCustom {
158- part .Format = parts [1 ]
159- } else {
160- part .Format = "%" + parts [1 ] + "v"
161- }
162- default :
163- part .Format = defaultFormat
164- if flag == FmtFlagLine {
165- part .Format = "L" + defaultFormat
166- }
167- }
168-
169- flagParts = append (flagParts , part )
170- }
171-
172- return & flagParts , nil
173- }
0 commit comments