如何调整Golang Zerolog日志中级别与时间戳的显示顺序
调整zerolog日志级别与时间戳的显示位置
可以通过zerolog.ConsoleWriter的FieldOrder字段指定日志字段的输出顺序,实现级别在前、时间戳在后的格式。
修改方案
直接在ConsoleWriter配置中添加字段顺序规则,并微调格式函数的输出内容:
consoleWriter := zerolog.ConsoleWriter{ Out: os.Stdout, NoColor: true, TimeFormat: time.RFC3339, // 指定字段输出优先级:先显示级别,再显示时间戳 FieldOrder: []string{"level", "timestamp"}, } consoleWriter.FormatLevel = func(i interface{}) string { // 仅保留级别包裹格式,移除原有的末尾分隔符 return strings.ToUpper(fmt.Sprintf("[ %-6s]", i)) } consoleWriter.FormatTimestamp = func(i interface{}) string { // 在时间戳格式后添加衔接消息的分隔符 return strings.ToUpper(fmt.Sprintf("[%s] -", i)) } if cfg.Logger.WriteLogger { multi = zerolog.MultiLevelWriter(consoleWriter, file) } else { defer file.Close() multi = zerolog.MultiLevelWriter(consoleWriter) } logger := zerolog.New(multi).Level(zerolog.TraceLevel). With(). Timestamp(). Logger() logger.Info().Msg("this is message")
修改后输出效果
[ INFO ] [2024-01-16T13:24:05+07:00] - this is message
内容的提问来源于stack exchange,提问作者leonardo watch
相关产品推荐
相关产品推荐

