mirror of
https://github.com/zeromicro/go-zero.git
synced 2026-05-13 18:00:00 +08:00
fix: avoid duplicate in logx plain mode (#4080)
This commit is contained in:
@@ -254,11 +254,10 @@ func (n nopWriter) Stack(_ any) {
|
||||
func (n nopWriter) Stat(_ any, _ ...LogField) {
|
||||
}
|
||||
|
||||
func buildPlainFields(fields ...LogField) []string {
|
||||
var items []string
|
||||
|
||||
for _, field := range fields {
|
||||
items = append(items, fmt.Sprintf("%s=%+v", field.Key, field.Value))
|
||||
func buildPlainFields(fields logEntry) []string {
|
||||
items := make([]string, 0, len(fields))
|
||||
for k, v := range fields {
|
||||
items = append(items, fmt.Sprintf("%s=%+v", k, v))
|
||||
}
|
||||
|
||||
return items
|
||||
@@ -289,15 +288,17 @@ func output(writer io.Writer, level string, val any, fields ...LogField) {
|
||||
}
|
||||
|
||||
fields = combineGlobalFields(fields)
|
||||
// +3 for timestamp, level and content
|
||||
entry := make(logEntry, len(fields)+3)
|
||||
for _, field := range fields {
|
||||
entry[field.Key] = field.Value
|
||||
}
|
||||
|
||||
switch atomic.LoadUint32(&encoding) {
|
||||
case plainEncodingType:
|
||||
writePlainAny(writer, level, val, buildPlainFields(fields...)...)
|
||||
plainFields := buildPlainFields(entry)
|
||||
writePlainAny(writer, level, val, plainFields...)
|
||||
default:
|
||||
entry := make(logEntry)
|
||||
for _, field := range fields {
|
||||
entry[field.Key] = field.Value
|
||||
}
|
||||
entry[timestampKey] = getTimestamp()
|
||||
entry[levelKey] = level
|
||||
entry[contentKey] = val
|
||||
|
||||
Reference in New Issue
Block a user