github.com/gogf/gf@v1.16.9/.example/os/glog/handler/glog_handler_json.go (about) 1 package main 2 3 import ( 4 "context" 5 "github.com/gogf/gf/frame/g" 6 "github.com/gogf/gf/internal/json" 7 "github.com/gogf/gf/os/glog" 8 "github.com/gogf/gf/text/gstr" 9 "os" 10 ) 11 12 // JsonOutputsForLogger is for JSON marshaling in sequence. 13 type JsonOutputsForLogger struct { 14 Time string `json:"time"` 15 Level string `json:"level"` 16 Content string `json:"content"` 17 } 18 19 // LoggingJsonHandler is an example handler for logging JSON format content. 20 var LoggingJsonHandler glog.Handler = func(ctx context.Context, in *glog.HandlerInput) { 21 jsonForLogger := JsonOutputsForLogger{ 22 Time: in.TimeFormat, 23 Level: in.LevelFormat, 24 Content: gstr.Trim(in.String()), 25 } 26 jsonBytes, err := json.Marshal(jsonForLogger) 27 if err != nil { 28 _, _ = os.Stderr.WriteString(err.Error()) 29 return 30 } 31 in.Buffer.Write(jsonBytes) 32 in.Buffer.WriteString("\n") 33 in.Next() 34 } 35 36 func main() { 37 g.Log().SetHandlers(LoggingJsonHandler) 38 39 g.Log().Debug("Debugging...") 40 g.Log().Warning("It is warning info") 41 g.Log().Error("Error occurs, please have a check") 42 }