Log Levels
Log darajalari
Har bir log yozuvi "qanchalik muhim" ekanini bildiruvchi darajaga ega: Debug (faqat dasturchi uchun batafsil), Info (odatiy voqealar), Warn (e'tibor talab qiladi, lekin hali xato emas), Error (biror narsa noto'g'ri ketdi).
package main
import (
"log/slog"
"os"
)
var opts = &slog.HandlerOptions{
Level: slog.LevelWarn,
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.Debug("bu ko'rinmaydi")
logger.Info("bu ham ko'rinmaydi")
logger.Warn("bu ko'rinadi")
logger.Error("bu ham ko'rinadi")
}HandlerOptions.Level: slog.LevelWarn — "faqat Warn va undan yuqori darajadagi (Warn, Error) loglarni ko'rsat" degani. Bu production'da juda foydali: ishlab chiqarishda ortiqcha Debug/Info loglar bilan tizimni to'ldirmaslik uchun darajani Warn yoki Errorga qo'yish, lekin dasturni disk yoki tarmoq bilan sinab ko'rayotganda Debuggacha tushirish mumkin.
>_ Exercise
Faqat Error darajasidagi loglarni ko'rsatadigan logger sozlang.
- •opts'da Level'ni slog.LevelError qilib belgilang
- •Info, Warn va Error darajalarida bittadan xabar yozing
- •faqat Error xabari chiqishini tekshiring
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
HandlerOptions.Level orqali qaysi darajadan boshlab loglar ko'rsatilishini boshqarish mumkin — bu production loyihalarda log hajmini nazorat qilishning asosiy usuli.
NEXT UP
Structured Attributes
$ go run main.go
Kodingizni ishga tushiring