Bagaimana untuk log struktur secara automatik melalui Zerolog?

WBOY
Lepaskan: 2024-02-12 22:09:09
ke hadapan
991 orang telah melayarinya

如何通过 Zerolog 自动记录结构?

editor php Xigua akan memperkenalkan anda cara merakam struktur secara automatik melalui Zerolog. Zerolog ialah perpustakaan pengelogan berprestasi tinggi yang membantu kami merekod log berstruktur secara automatik dalam aplikasi. Dengan menggunakan Zerolog, kita boleh log maklumat dengan mudah ke sumber output yang berbeza seperti konsol, fail atau pelayan jauh. Pada masa yang sama, Zerolog juga menyediakan tahap log yang kaya, penambahan medan dan fungsi pemformatan, membolehkan kami mengawal dan mengurus maklumat log dengan lebih fleksibel. Seterusnya, mari belajar cara menggunakan Zerolog untuk merekod log berstruktur secara automatik!

Kandungan soalan

Saya menggunakan zerolog untuk log masuk ke apl go. Saya mahu log peta (json) dan menemui jalan:

log.info().
    str("foo", "bar").
    dict("dict", zerolog.dict().
        str("bar", "baz").
        int("n", 1),
    ).msg("hello world")

// output: {"level":"info","time":1494567715,"foo":"bar","dict":{"bar":"baz","n":1},"message":"hello world"}
Salin selepas log masuk

Dalam contoh di atas, saya perlukan kaedah dalam zerolog.dict() 方法中指定每个 key-value 对。我想知道是否有自动记录 struct .

Sebagai contoh, saya mempunyai struktur seperti ini:

type message struct {
    aws_region     string `json:"region"`
    log_level      string `json:"level"`
    stage          string `json:"stage"`
    request_id     string `json:"requestid"`
}
Salin selepas log masuk

Saya sedang mencari cara untuk lulus message contoh kepada

msg := Message{ ... }
zerolog.Dict("message", msg)
Salin selepas log masuk

Penyelesaian

Anda boleh menggunakan kaedah Interface untuk mencapai ini.

Contoh

Tetapi sila ambil perhatian bahawa Interface menggunakan refleksi untuk bersiri, jadi kod pendek datang pada kos prestasi

Atas ialah kandungan terperinci Bagaimana untuk log struktur secara automatik melalui Zerolog?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!