Debugging

فینچ یک debugger داخلی دارد که صفحه‌های خطای دقیق را در محیط توسعه نمایش می‌دهد.

فعال‌سازی debugger

دو تنظیم مورد نیاز است:

// در lib/app.dart
FinchConfigs(
  enableLocalDebugger: true,   // تنظیم 1: فعال‌سازی debugger
)
// در bin/finch.dart
FinchApp.run(
  app: App(),
  isLocalDebug: true,          // تنظیم 2: اجرا در حالت debug محلی
)

هر دو تنظیم باید true باشند تا صفحه‌های خطای debug نمایش داده شوند.

چگونگی محاسبه isLocalDebug

معمولاً isLocalDebug از یک متغیر محیطی خوانده می‌شود:

FinchApp.run(
  app: App(),
  isLocalDebug: env['APP_ENV'] == 'local',
)

به این ترتیب می‌توانید با استقرار APP_ENV=production، debugger را غیرفعال کنید.

متغیر قالب

در قالب‌های Jinja، isLocalDebug در دسترس است:

{% if isLocalDebug %}
  <div class="debug-bar">
    محیط: توسعه | نسخه: {{ appVersion }}
  </div>
{% endif %}

صفحه خطا

هنگامی که debugger فعال است:

  • خطاهای مدیریت‌نشده stack trace کامل را در مرورگر نمایش می‌دهند
  • خطاهای 404 و 500 صفحه‌های زیبا و اطلاعات‌دهنده نمایش می‌دهند
  • اطلاعات درخواست (headers، params، body) قابل مشاهده هستند

در حالت production (isLocalDebug: false):

  • صفحه‌های خطای عمومی برای کاربران نمایش داده می‌شود
  • stack trace ها در console لاگ می‌شوند نه در browser