Mengapa Logging Terstruktur
Logging yang dapat dibaca mesin
Mengapa Logging Terstruktur adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Log yang Dapat Dibaca Mesin
Log tradisional berupa string bebas: "user 42 logged in from 1.2.3.4". Log tersebut mudah dibaca manusia, tetapi sulit dikuerikan oleh mesin. Pencatatan terstruktur menghasilkan pasangan kunci-nilai sehingga pengumpul log dapat memfilter dan mengagregasikannya dengan andal.
Masalah pada Log Berupa String
Mengurai teks bebas rapuh:
- Format berubah seiring waktu
- Ekspresi reguler rusak pada kasus-kasus khusus
- Anda tidak dapat dengan mudah menanyakan "semua kejadian dengan userID=42"
Log terstruktur menjadikan setiap bidang sebagai atribut utama yang dapat dikuerikan.
slog Ada di Pustaka Standar
Sejak Go 1.21, pencatatan terstruktur tersedia dalam paket pustaka standar log/slog. Anda tidak memerlukan dependensi eksternal.
import "log/slog"Log Terstruktur Pertama Anda
Panggilan paling sederhana mencatat pesan beserta atribut kunci-nilai:
package main
import "log/slog"
func main() {
slog.Info("user logged in", "userID", 42, "ip", "1.2.3.4")
}Membaca Keluaran
Penangan default mencetak sesuatu seperti:
2009/11/10 23:00:00 INFO user logged in userID=42 ip=1.2.3.4
Setiap atribut merupakan pasangan key=value terpisah yang siap diurai oleh mesin.
Level Bawaan
slog menyediakan empat level: Debug, Info, Warn, Error. Masing-masing menerima pesan dan atribut kunci-nilai yang disusun bergantian.
slog.Warn("disk almost full", "freePct", 5)
slog.Error("db connection failed", "attempt", 3)Pasangan Kunci-Nilai
Atribut diberikan sebagai argumen bergantian: kunci, nilai, kunci, nilai. Argumen ganjil yang tidak memiliki pasangan dicatat dengan penanda khusus !BADKEY, jadi pastikan semuanya berpasangan.
slog.Info("order placed", "orderID", 1001, "total", 49.99)JSON untuk Produksi
Dalam produksi, biasanya Anda menghasilkan JSON agar pengirim log (Loki, ELK, CloudWatch) dapat mengindeks bidang secara otomatis. slog memiliki penangan JSON khusus untuk keperluan ini, yang dibahas pada pelajaran berikutnya.
Membandingkan dengan Paket log Lama
Paket klasik log hanya mencetak string. slog tetap terasa familier, tetapi menambahkan struktur, level, dan penangan yang dapat dipasang tanpa harus mengubah seluruh basis kode sekaligus.
Saat Struktur Memberi Manfaat
Pencatatan terstruktur paling bermanfaat ketika:
- Anda memusatkan log dari banyak layanan
- Anda membuat dasbor dan peringatan berdasarkan bidang
- Anda perlu menghubungkan permintaan berdasarkan sebuah ID
Dapat Dijalankan: Keluaran Terstruktur
Jalankan ini untuk melihat atribut terstruktur pada keluaran default.
package main
import "log/slog"
func main() {
slog.Info("request handled",
"method", "GET",
"path", "/health",
"status", 200,
"ms", 12,
)
}Uji Cepat
Uji pemahaman Anda tentang pencatatan terstruktur.
Ringkasan
Anda telah mempelajari alasan pentingnya log terstruktur:
- Atribut kunci-nilai dapat dikuerikan oleh mesin
log/slogtersedia di pustaka standar (Go 1.21+)- Level bawaan: Debug, Info, Warn, Error
- Berikan atribut sebagai pasangan kunci dan nilai secara bergantian
Berikutnya: memilih penangan teks atau JSON.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengapa Logging Terstruktur” gratis?
Ya — teks lengkap “Mengapa Logging Terstruktur” 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 “Mengapa Logging Terstruktur”?
Logging yang dapat dibaca mesin 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 1 dari 4.
Berapa lama pelajaran “Mengapa Logging Terstruktur” 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.
Semua pelajaran dalam kursus ini
- Mengapa Logging Terstruktur
- Handler slog
- Level Log dan Atribut
- Handler Kustom