Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tukar aras lokasi dan cap masa Zerolog golang

Tukar aras lokasi dan cap masa Zerolog golang

王林
王林ke hadapan
2024-02-12 18:09:051259semak imbas

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

Kandungan soalan

Saya menggunakan Zerolog untuk log tetapi saya mendapat aduan kerana format log berbeza dari sebelumnya dan saya cuba memfaktorkan semula dari bahasa lain ke golang. Adakah mungkin untuk menukar tahap lokasi dan cap waktu?

Ini kod saya: `

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")

`

Saya mendapat keputusan:

[2024-01-16T13:24:05+07:00] [Mesej] - Ini mesejnya

块引用>

Adakah boleh tukar posisi supaya hasilnya seperti:

[ INFO ] [2024-01-16T13:24:05+07:00] - Ini beritanya

块引用>

Terima kasih.

Penyelesaian

Anda boleh menggunakan PartsOrder untuk melakukan ini; anda juga perlu melaraskan pemformat supaya - berada dalam kedudukan yang betul (taman permainan).

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")
}

Keluaran:

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

Atas ialah kandungan terperinci Tukar aras lokasi dan cap masa Zerolog golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam