0Pricing
Go Academy · Pelajaran

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/slog tersedia 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

  1. Mengapa Logging Terstruktur
  2. Handler slog
  3. Level Log dan Atribut
  4. Handler Kustom
← Kembali ke Go Academy