ELMAH ErrorLogPageFactory: Solusi Penanganan Error ASP.NET

ELMAH ErrorLogPageFactory adalah handler HTTP khusus yang disediakan oleh pustaka Error Logging Modules and Handlers (ELMAH) untuk ASP.NET. Fungsi utamanya adalah merender antarmuka web interaktif yang menampilkan daftar seluruh log pengecualian (exception) atau error yang terjadi pada aplikasi web Anda secara real-time langsung melalui peramban.

Secara arsitektural, modul ELMAH bertugas menangkap unhandled exception di seluruh siklus hidup aplikasi ASP.NET, sementara ErrorLogPageFactory bertugas menyajikan data log tersebut ke dalam format halaman HTML yang mudah dibaca, lengkap dengan detail stack trace, tanggal, alamat IP, dan HTTP method tanpa memerlukan pembuatan halaman aspx atau mvc secara manual.

Konfigurasi Dasar di Web.config

Untuk mengaktifkan halaman log error ELMAH, Anda harus mendaftarkan handler ini di dalam file konfigurasi web.config aplikasi ASP.NET Anda. Konfigurasi ini bergantung pada apakah aplikasi Anda berjalan di IIS terintegrasi (IIS 7.0 ke atas) atau mode klasik.

<system.web>
  <httpHandlers>
    <add verb="POST,GET,HEAD" path="errorlog.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
  </httpHandlers>
</system.web>

<system.webServer>
  <handlers>
    <add name="Elmah" path="errorlog.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
  </handlers>
</system.webServer>

Parameter dan Aspek Teknis ErrorLogPageFactory

Tabel berikut merinci parameter teknis utama saat Anda mengimplementasikan ErrorLogPageFactory di dalam lingkungan produksi.

Komponen Nilai / Pengaturan Keterangan Teknis
Path Akses errorlog.axd atau elmah.axd URL virtual yang digunakan untuk mengakses halaman log melalui browser.
Type Handler Elmah.ErrorLogPageFactory, Elmah Kelas pabrik (factory class) yang memetakan HTTP request ke halaman HTML log error.
Verb yang Diizinkan GET, POST, HEAD Metode HTTP standar untuk mengambil halaman, mengirimkan aksi tertentu, atau mengecek status.
Format Penyimpanan Memory, XML, SQL Server, SQLite, dll. Sumber data di belakang layar tempat log error disimpan sebelum dirender oleh factory.

Keamanan dan Pembatasan Akses (Security Best Practices)

Secara default, halaman yang dihasilkan oleh ErrorLogPageFactory bersifat publik jika tidak diamankan dengan benar. Hal ini sangat berbahaya karena informasi sensitif seperti string koneksi database, struktur kode internal, dan variabel lingkungan server dapat dilihat oleh siapa saja.

Untuk mengamankan halaman log error agar hanya dapat diakses oleh administrator, tambahkan blok konfigurasi <location> di dalam file web.config:

<location path="errorlog.axd">
  <system.web>
    <authorization>
      <allow roles="Administrator" />
      <deny users="*" />
    </authorization>
  </system.web>
</location>

Troubleshooting Masalah Umum

Jika Anda mendapati halaman log error mengembalikan status HTTP 404 (Not Found) saat diakses, periksa beberapa hal berikut:

  • Pastikan entri handler telah didaftarkan pada bagian <system.webServer><handlers> jika Anda menggunakan IIS 7 ke atas dalam mode Integrated.
  • Periksa atribut path pada konfigurasi handler. Jika Anda menuliskan errorlog.axd, maka URL yang harus diakses adalah http://domain-anda/errorlog.axd.
  • Pastikan pustaka atau NuGet package elmah.corelibrary sudah terinstal dengan benar di dalam proyek aplikasi Anda.