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.
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.