Skip to content

Commit

Permalink
fix: adjust log encode output mode (zeromicro#3676)
Browse files Browse the repository at this point in the history
  • Loading branch information
MarkJoyMa authored Oct 28, 2023
1 parent b07df1c commit 32600f2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
9 changes: 5 additions & 4 deletions core/logx/writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"io"
"log"
"path"
"reflect"
"runtime/debug"
"sync"
"sync/atomic"
Expand Down Expand Up @@ -334,11 +333,13 @@ func wrapLevelWithColor(level string) string {

func writeJson(writer io.Writer, info any) {
if content, err := json.Marshal(info); err != nil {
log.Printf("err: %s, type: %s\n\n%s\n", err.Error(), reflect.TypeOf(info).Name(), debug.Stack())
log.Printf("err: %s\n\n%s", err.Error(), debug.Stack())
} else if writer == nil {
log.Println(string(content))
} else {
writer.Write(append(content, '\n'))
if _, err := writer.Write(append(content, '\n')); err != nil {
log.Println(err.Error())
}
}
}

Expand Down Expand Up @@ -386,7 +387,7 @@ func writePlainValue(writer io.Writer, level string, val any, fields ...string)
buf.WriteString(level)
buf.WriteByte(plainEncodingSep)
if err := json.NewEncoder(&buf).Encode(val); err != nil {
log.Printf("err: %s, type: %s\n\n%s\n", err.Error(), reflect.TypeOf(val).Name(), debug.Stack())
log.Printf("err: %s\n\n%s", err.Error(), debug.Stack())
return
}

Expand Down
5 changes: 5 additions & 0 deletions core/logx/writer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,11 @@ func TestWriteJson(t *testing.T) {
log.SetOutput(&buf)
writeJson(nil, "foo")
assert.Contains(t, buf.String(), "foo")

buf.Reset()
writeJson(hardToWriteWriter{}, "foo")
assert.Contains(t, buf.String(), "write error")

buf.Reset()
writeJson(nil, make(chan int))
assert.Contains(t, buf.String(), "unsupported type")
Expand Down

0 comments on commit 32600f2

Please sign in to comment.