TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 549 subscribers
Post #202 95
4️⃣ رویدادهای مهم اپلیکیشن را لاگ کنید 📌

به طور کلی، من سعی می‌کنم رویدادهای مهم را در اپلیکیشن خود لاگ کنم. این شامل اطلاعات درخواست فعلی، خطاها، شکست‌ها، مقادیر غیرمنتظره، نقاط انشعاب و غیره است.
اگر از الگوی CQRS با MediatR استفاده می‌کنید، می‌توانید به راحتی لاگینگ را برای تمام درخواست‌های اپلیکیشن اضافه کنید.
در RequestLoggingPipelineBehavior من پراپرتی Error را به LogContext پوش می‌کنم.
internal sealed class RequestLoggingPipelineBehavior<TRequest, TResponse>
: IPipelineBehavior<TRequest, TResponse>
where TRequest : class
where TResponse : Result
{
// ...
public async Task<TResponse> Handle(...)
{
// ...
TResponse result = await next();
if (result.IsSuccess) { /* ... */ }
else
{
using (LogContext.PushProperty("Error", result.Error, true))
{
_logger.LogError(
"Completed request {RequestName} with error", requestName);
}
}
return result;
}
}


5️⃣ از Seq برای توسعه محلی استفاده کنید 🔍

Seq
یک سرور جستجو، تحلیل و هشدار self-hosted است که برای داده‌های لاگ ساختاریافته ساخته شده است. استفاده از آن برای توسعه محلی رایگان است. این ابزار قابلیت‌های جستجو و فیلترینگ پیشرفته‌ای را روی داده‌های لاگ ساختاریافته ارائه می‌دهد.

می‌توانید یک نمونه Seq را در یک کانتینر Docker بالا بیاورید:
version: '3.4'
services:
seq:
image: datalust/seq:latest
container_name: seq
environment:
- ACCEPT_EULA=Y
ports:
- 5341:5341
- 8081:80
`


خلاصه ✅

لاگ‌های ساختاریافته از یک ساختار یکسان پیروی می‌کنند و چون قابل خواندن توسط ماشین هستند، می‌توانید آن‌ها را برای اطلاعات خاص جستجو کنید. آن‌ها زمینه و جزئیات بیشتری در مورد خطاهای اپلیکیشن ارائه می‌دهند و شناسایی و رفع مشکلات را آسان‌تر می‌کنند.
شما می‌توانید از LogContext قدرتمند Serilog برای غنی‌سازی لاگ‌های خود با یک CorrelationId استفاده کنید.

🔖 هشتگ‌ها:
#CSharp #DotNet #Logging #StructuredLogging #Observability #Serilog
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →