examples: use the new golog.JSON, comment the manual way for general purpose knowedge that can be used to create a handler for any other custom format

This commit is contained in:
Gerasimos (Makis) Maropoulos 2020-09-06 13:12:54 +03:00
parent ebeb465836
commit 26f515775b
No known key found for this signature in database
GPG Key ID: 5DBE766BD26A54E7
3 changed files with 18 additions and 12 deletions

View File

@ -1,8 +1,6 @@
package main
import (
"encoding/json"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/middleware/requestid"
@ -12,7 +10,10 @@ import (
func main() {
app := iris.New()
app.Logger().SetLevel("debug")
app.Logger().Handle(jsonOutput)
app.Logger().Handle(golog.JSON(" ")) /* see below to manually create a handler */
// Also, see app.Logger().SetLevelOutput(level string, w io.Writer)
// to set a custom writer for a specific level.
app.Use(requestid.New())
@ -54,13 +55,6 @@ func main() {
app.Listen(":8080" /*, iris.WithoutBanner*/)
}
func jsonOutput(l *golog.Log) bool {
enc := json.NewEncoder(l.Logger.Printer) // you can change the output to a file as well.
enc.SetIndent("", " ")
err := enc.Encode(l)
return err == nil
}
func ping(ctx iris.Context) {
/* Example Output:
{
@ -85,3 +79,15 @@ func ping(ctx iris.Context) {
ctx.WriteString("pong")
}
/* Manually. Use it for any custom format:
func jsonOutput(l *golog.Log) bool {
// you can change the output to a file as well.
enc := json.NewEncoder(l.Logger.GetLevelOutput(l.Level.String()))
enc.SetIndent("", " ")
err := enc.Encode(l)
return err == nil
}
app.Logger().Handle(jsonOutput)
*/

View File

@ -30,7 +30,7 @@ func TestJSONLogger(t *testing.T) {
app.Get("/ping", ping)
const expectedLogStr = `{"level":"debug","message":"Request path: /ping","fields":{"request_id":null},"stacktrace":[{"function":"json-logger/ping","source":"C:/mygopath/src/github.com/kataras/iris/_examples/logging/json-logger/main.go:82"}]}`
const expectedLogStr = `{"level":"debug","message":"Request path: /ping","fields":{"request_id":null},"stacktrace":[{"function":"json-logger/ping","source":"C:/mygopath/src/github.com/kataras/iris/_examples/logging/json-logger/main.go:85"}]}`
e := httptest.New(t, app, httptest.LogLevel("debug"))
wg := new(sync.WaitGroup)
wg.Add(iters)

2
go.mod
View File

@ -20,7 +20,7 @@ require (
github.com/iris-contrib/schema v0.0.6
github.com/json-iterator/go v1.1.10
github.com/kataras/blocks v0.0.3
github.com/kataras/golog v0.1.3
github.com/kataras/golog v0.1.4
github.com/kataras/neffos v0.0.16
github.com/kataras/pio v0.0.10
github.com/kataras/sitemap v0.0.5