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  }