Standortebene und Zeitstempel ändern Zerolog Golang

王林
Freigeben: 2024-02-12 18:09:05
nach vorne
1319 Leute haben es durchsucht

更改位置级别和时间戳 Zerolog golang

Frageninhalt

Ich verwende Zerolog für die Protokollierung, erhalte jedoch Beschwerden, weil das Protokollformat anders als zuvor ist und ich versuche, von einer anderen Sprache auf Golang umzugestalten. Ist es möglich, die Standortebene und den Zeitstempel zu ändern?

Das ist mein Code: `

consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout, NoColor: 
true, TimeFormat: time.RFC3339}

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")
Nach dem Login kopieren

`

Ich habe das Ergebnis erhalten:

<块引用>

[2024-01-16T13:24:05+07:00] [Nachricht] – Das ist die Nachricht

Ist es möglich, die Position so zu ändern, dass das Ergebnis wie folgt aussieht:

<块引用>

[ INFO ] [2024-01-16T13:24:05+07:00] – Das sind die Neuigkeiten

Vielen Dank.

Workaround

Sie können dazu PartsOrder verwenden; Sie müssen außerdem den Formatierer anpassen, damit sich - an der richtigen Position befindet (Playground).

func main() {
    consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout, NoColor: true, TimeFormat: time.RFC3339}

    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))
    //}
    consoleWriter.TimeFormat = "[" + time.RFC3339 + "] - "
    consoleWriter.PartsOrder = []string{
        zerolog.LevelFieldName,
        zerolog.TimestampFieldName,
        zerolog.CallerFieldName,
        zerolog.MessageFieldName,
    }
    logger := zerolog.New(consoleWriter).Level(zerolog.TraceLevel).
        With().
        Timestamp().
        Logger()
    logger.Info().Msg("this is message")
}
Nach dem Login kopieren

Ausgabe:

[ INFO  ] [2024-01-16T21:11:39+13:00] -  this is message
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonStandortebene und Zeitstempel ändern Zerolog Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage