GoDasturchi
Structured Attributes

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.

example.go
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.

Hints (0/3)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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.

example.go
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.

Hints (0/3)

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