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

Tukar aras lokasi dan cap masa Zerolog golang

王林
Lepaskan: 2024-02-12 18:09:05
ke hadapan
1357 orang telah melayarinya

更改位置级别和时间戳 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")
Salin selepas log masuk

`

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")
}
Salin selepas log masuk

Keluaran:

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

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan