Study
ASP.NET Core

Logging Bawaan

Penjelasan

ASP.NET Core punya sistem logging BAWAAN sejak awal — ILogger<T> di-inject lewat constructor (T menandakan class asal log, memudahkan filter log per komponen), dengan level log standar: LogInformation(), LogWarning(), LogError(), dst. Berbeda dari Express/NestJS yang butuh library logging tambahan (winston, pino), ini sudah siap pakai tanpa instalasi apa pun.

Contoh Konsep

[ApiController]
[Route("api/[controller]")]
public class ProdukController : ControllerBase
{
    private readonly ILogger<ProdukController> _logger;

    public ProdukController(ILogger<ProdukController> logger) => _logger = logger;

    [HttpGet]
    public IActionResult FindAll()
    {
        _logger.LogInformation("Endpoint FindAll produk dipanggil");
        return Ok("Daftar produk");
    }
}

Praktikum

Buat ArtikelController yang meng-inject ILogger<ArtikelController>. Di method Delete(int id), catat log lewat LogWarning() berisi pesan "Artikel dengan id {id} dihapus" sebelum benar-benar menghapusnya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Generic ILogger<ProdukController> (bukan cuma ILogger biasa) otomatis menandai SETIAP baris log dengan nama class asalnya — sangat membantu saat membaca log production untuk tahu PERSIS komponen mana yang menghasilkan log tertentu, tanpa perlu menulis nama class manual di tiap pesan log.