From 552026726b991c58fd7edd22dfe5cbbb82de0a82 Mon Sep 17 00:00:00 2001 From: phuslu Date: Mon, 25 Jul 2022 21:05:17 +0800 Subject: [PATCH] tweak formatter --- formatter.go | 16 +++++++++------- formatter_test.go | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/formatter.go b/formatter.go index 783ad7df..7337070f 100644 --- a/formatter.go +++ b/formatter.go @@ -11,11 +11,11 @@ import ( // FormatterArgs is a parsed sturct from json input type FormatterArgs struct { Time string // "2019-07-10T05:35:54.277Z" - Message string // "a structure message" Level string // "info" Caller string // "prog.go:42" Goid string // "123" Stack string // "" + Message string // "a structure message" KeyValues []struct { Key string // "foo" Value string // "bar" @@ -38,15 +38,15 @@ func formatterArgsPos(key string) (pos int) { switch key { case "time": pos = 1 - case "message", "msg": - pos = 2 case "level": - pos = 3 + pos = 2 case "caller": - pos = 4 + pos = 3 case "goid": - pos = 5 + pos = 4 case "stack": + pos = 5 + case "message", "msg": pos = 6 } return @@ -104,7 +104,9 @@ func parseFormatterArgs(json []byte, args *FormatterArgs) { if pos == 2 && len(str) != 0 && str[len(str)-1] == '\n' { str = str[:len(str)-1] } - slice[pos-1] = b2s(str) + if slice[pos-1] == "" { + slice[pos-1] = b2s(str) + } } else { args.KeyValues = append(args.KeyValues, struct { Key, Value string diff --git a/formatter_test.go b/formatter_test.go index 8b593622..ca8a7667 100644 --- a/formatter_test.go +++ b/formatter_test.go @@ -8,7 +8,7 @@ import ( func TestFormatterParse(t *testing.T) { var jsons = []string{ - `{"time":"2019-07-10T05:35:54.277Z","level":"info","caller":"pretty.go:42","error":"这是一个🌐哦\n","foo":"bar","n":42,"t":true,"f":false,"o":null,"a":[1,2,3],"obj":{"a":[1,2], "b":{"c":3}},"message":"hello json console color writer\t123"}`, + `{"time":"2019-07-10T05:35:54.277Z","level":"debug","level":"error","caller":"pretty.go:42","error":"这是一个🌐哦\n","foo":"bar","n":42,"t":true,"f":false,"o":null,"a":[1,2,3],"obj":{"a":[1,2], "b":{"c":3}},"message":"hello json console color writer\t123"}`, `{"ts":1234567890,"level":"info","caller":"pretty.go:42","foo":"haha","message":"hello self-define time field\t\n"}`, }