Handler slog
Handler teks dan JSON
Handler slog adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Penangan Menentukan Format
Dalam slog, sebuah pencatat memanggil Handler untuk memformat dan menulis setiap rekaman. Mengganti penangan akan mengubah format keluaran tanpa menyentuh panggilan log Anda.
TextHandler
slog.NewTextHandler menulis baris key=value yang mudah dibaca manusia. Cocok untuk pengembangan lokal dan terminal.
package main
import (
"log/slog"
"os"
)
func main() {
h := slog.NewTextHandler(os.Stdout, nil)
logger := slog.New(h)
logger.Info("hello", "env", "dev")
}JSONHandler
slog.NewJSONHandler menghasilkan satu objek JSON per baris. Ideal untuk alur pemrosesan log produksi.
package main
import (
"log/slog"
"os"
)
func main() {
h := slog.NewJSONHandler(os.Stdout, nil)
logger := slog.New(h)
logger.Info("hello", "env", "prod")
}Membuat Pencatat
slog.New(handler) membungkus penangan menjadi sebuah pencatat. Anda memanggil logger.Info, logger.Error, dan lainnya pada instans tersebut.
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))HandlerOptions
Argumen kedua pada konstruktor penangan adalah *slog.HandlerOptions. Berikan nil untuk nilai default, atau konfigurasikan level dan lokasi sumber.
opts := &slog.HandlerOptions{
Level: slog.LevelDebug,
AddSource: true,
}
h := slog.NewJSONHandler(os.Stdout, opts)Menulis ke Berkas atau Penyangga
Penangan menerima io.Writer apa pun. Anda dapat mencatat ke berkas, penyangga untuk pengujian, atau stdout. Pemisahan ini merupakan salah satu prinsip desain utama slog.
f, _ := os.Create("app.log")
logger := slog.New(slog.NewJSONHandler(f, nil))Mengatur Pencatat Default
slog.SetDefault(logger) membuat fungsi tingkat paket (slog.Info dan lainnya) menggunakan penangan Anda. Atur sekali saat aplikasi dimulai.
slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil)))
slog.Info("now JSON by default")Keluaran Teks dibandingkan JSON
Satu panggilan, dua format:
- Teks:
time=... level=INFO msg=hello env=dev - JSON:
{"time":"...","level":"INFO","msg":"hello","env":"dev"}
Memilih Penangan
Aturan praktis:
- Lokal/pengembangan: TextHandler (mudah dibaca)
- Produksi/teragregasi: JSONHandler (mudah diurai)
Tentukan pilihan melalui variabel lingkungan agar biner yang sama dapat menyesuaikan diri.
Menulis Penyiapan yang Dapat Digunakan Kembali
Pusatkan pembuatan pencatat agar seluruh aplikasi menggunakan satu konfigurasi.
func newLogger(prod bool) *slog.Logger {
if prod {
return slog.New(slog.NewJSONHandler(os.Stdout, nil))
}
return slog.New(slog.NewTextHandler(os.Stdout, nil))
}Dapat Dijalankan: Mengganti Penangan
Program ini mencatat kejadian yang sama melalui kedua penangan agar Anda dapat membandingkan formatnya.
package main
import (
"log/slog"
"os"
)
func main() {
text := slog.New(slog.NewTextHandler(os.Stdout, nil))
js := slog.New(slog.NewJSONHandler(os.Stdout, nil))
text.Info("login", "user", "ada")
js.Info("login", "user", "ada")
}Uji Cepat
Uji pemahaman Anda tentang penangan slog.
Ringkasan
Anda telah mempelajari penangan slog:
- Penangan memformat dan menulis rekaman; pencatat memanggilnya
NewTextHandleruntuk manusia,NewJSONHandleruntuk mesin- Penangan menerima
io.Writerapa pun dan*HandlerOptions slog.SetDefaultmenghubungkan fungsi tingkat paket
Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Handler slog” gratis?
Ya — teks lengkap “Handler slog” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Handler slog”?
Handler teks dan JSON Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Handler slog” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.