Structured Attributes
Strukturaviy atributlar
Log xabariga qo'shiladigan qo'shimcha ma'lumotlar — "atributlar" deyiladi. Ularni oddiy juft argument ("kalit", qiymat) yoki slog.Int, slog.String kabi tayyor yordamchilar bilan qo'shish mumkin.
package main
import (
"log/slog"
"os"
)
var opts = &slog.HandlerOptions{
ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
if a.Key == slog.TimeKey {
return slog.Attr{}
}
return a
},
}
func main() {
logger := slog.New(slog.NewTextHandler(os.Stdout, opts))
logger.Info("buyurtma qabul qilindi",
slog.Int("order_id", 1042),
slog.String("customer", "Aziz"),
slog.Float64("total", 259.5),
)
}slog.Int(kalit, qiymat), slog.String(kalit, qiymat), slog.Float64(kalit, qiymat) — turli tur uchun aniq atribut yasovchi yordamchilar. Ular oddiy "order_id", 1042 yozishdan farqli — turlarni aniq belgilaganingiz uchun, ba'zi holatlarda (masalan juda ko'p log yozilganda) biroz samaraliroq ishlaydi, va o'qishda ham aniqroq.
>_ Exercise
To'lov haqidagi log yozuvini atributlar bilan boyiting.
- •"to'lov amalga oshirildi" xabarini yozing
- •slog.Int("user_id", 7), slog.String("method", "card"), slog.Float64("amount", 45000) atributlarini qo'shing
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
slog.Int, slog.String kabi tayyor yordamchilar bilan atribut qo'shish — tur xavfsizligini ta'minlaydi va log yozuvini boyitadi.
NEXT UP
Log Groups
$ go run main.go
Kodingizni ishga tushiring