0Pricing
C# Academy · Pelajaran

Abstraksi logging, Debug/Trace

Gunakan Debug/Trace dari System.Diagnostics, tambahkan listener, dan buat abstraksi kecil bergaya ILogger untuk memisahkan kode aplikasi dari tujuan keluaran log.

Abstraksi logging, Debug/Trace adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. 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 C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.

Alasan menggunakan pencatatan log

Tujuan:

  • Kirim pesan dengan Debug dan Trace
  • Tambahkan pendengar untuk melihat keluaran
  • Perkenalkan abstraksi pencatatan log yang kecil
  • Pilih tingkat dan pemformatan sederhana

Dasar-dasar Debug/Trace

Debug digunakan untuk pengembangan; Trace digunakan pada semua build. Tambahkan ConsoleTraceListener untuk melihat pesan dalam aplikasi konsol.

using System;
using System.Diagnostics;

// Demo: show Debug/Trace after adding a ConsoleTraceListener
public class Program
{
  public static void Main(string[] args)
  {
    // By default, console apps may not show Debug/Trace. Add a listener.
    Trace.Listeners.Clear();
    Trace.Listeners.Add(new ConsoleTraceListener());

    Debug.WriteLine("Debug: only in debug builds (often)");
    Trace.WriteLine("Trace: in all builds (commonly)");

    Trace.TraceInformation("Info message");
    Trace.TraceWarning("Warning message");
    Trace.TraceError("Error message");
  }
}

Demo TraceSource

TraceSource memberi nama pada pencatat dan memfilter berdasarkan SourceLevels; ini berguna untuk mengelompokkan pesan.

using System;
using System.Diagnostics;

// Demo: TraceSource can group logs by name and level.
public class Program
{
  public static void Main(string[] args)
  {
    var src = new TraceSource("Calc", SourceLevels.Information);
    src.Listeners.Clear();
    src.Listeners.Add(new ConsoleTraceListener());

    src.TraceEvent(TraceEventType.Information, 1001, "Starting");
    src.TraceEvent(TraceEventType.Warning, 1002, "Low precision");
    src.TraceEvent(TraceEventType.Error, 1003, "Divide by zero prevented");
    src.Flush();
    src.Close();
  }
}

Demo kecil ILogger

Antarmuka memisahkan pemanggil dari penampung; nantinya Anda dapat menambahkan penampung berkas atau jarak jauh tanpa mengubah lokasi pemanggilan.

using System;

// Minimal ILogger-like abstraction for beginners.
public interface ILogger
{
  void Info(string msg);
  void Warn(string msg);
  void Error(string msg);
}

public class ConsoleLogger : ILogger
{
  private readonly string _name;
  public ConsoleLogger(string name) { _name = name; }

  public void Info(string msg)  { Console.WriteLine("[INFO] "  + _name + " - " + msg); }
  public void Warn(string msg)  { Console.WriteLine("[WARN] "  + _name + " - " + msg); }
  public void Error(string msg) { Console.WriteLine("[ERROR] " + _name + " - " + msg); }
}

public class Program
{
  public static void Main(string[] args)
  {
    ILogger log = new ConsoleLogger("Checkout");
    log.Info("Start");
    log.Warn("Slow network");
    log.Error("Payment failed");
  }
}

Konteks & stempel waktu

Tambahkan konteks kecil (key=value) dan stempel waktu UTC agar korelasi lebih mudah saat membaca log.

using System;

// Add a timestamp and tiny key=value context.
public interface ILogger
{
  void Info(string msg, string contextKey, string contextValue);
}

public class ConsoleLogger : ILogger
{
  private readonly string _name;
  public ConsoleLogger(string name) { _name = name; }

  public void Info(string msg, string key, string value)
  {
    string stamp = DateTime.UtcNow.ToString("u"); // 2009-06-15 13:45:30Z
    Console.WriteLine(stamp + " [INFO] " + _name + " " + key + "=" + value + " :: " + msg);
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    ILogger log = new ConsoleLogger("Search");
    log.Info("Query executed", "q", "apple");
    log.Info("Cache miss", "userId", "42");
  }
}

Kiat & kebersihan

Kiat:

  • Pilih beberapa tingkat (Info/Warn/Error)
  • Tambahkan setidaknya satu pendengar untuk Debug/Trace
  • Buat pesan tetap singkat; tambahkan pasangan konteks kecil
  • Jangan mencatat rahasia

Alasan menggunakan abstraksi pencatatan log

Pemeriksaan singkat: Apa manfaat utama menggunakan abstraksi pencatatan log (misalnya antarmuka ILogger)?

Rangkuman

Rangkuman: Gunakan Debug/Trace dengan pendengar untuk melihat keluaran, lalu bungkus pemanggilan di balik antarmuka pencatat kecil agar penampung dapat diubah tanpa menyentuh kode bisnis.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Abstraksi logging, Debug/Trace” gratis?

Ya — teks lengkap “Abstraksi logging, Debug/Trace” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Abstraksi logging, Debug/Trace”?

Gunakan Debug/Trace dari System.Diagnostics, tambahkan listener, dan buat abstraksi kecil bergaya ILogger untuk memisahkan kode aplikasi dari tujuan keluaran log. Kamu berlatih C# 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 C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# 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 3.

Berapa lama pelajaran “Abstraksi logging, Debug/Trace” 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 C# Academy ini?

Ya. Setiap pelajaran C# 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. Abstraksi logging, Debug/Trace
  2. Pembuatan profil & jejak dasar (konsep)
  3. Pola penjagaan & validasi
← Kembali ke C# Academy