You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:44:52