mehransattary / Learn_CSharp

Main points
1 stars 0 forks source link

لاگ‌های بیزینسی (Business Logging) #97

Open mehransattary opened 4 days ago

mehransattary commented 4 days ago

بله، لاگ‌های بیزینسی (Business Logging) به نوعی لاگ‌برداری اشاره دارند که بیشتر بر روی فرآیندها، رویدادها و اثرات تجاری تمرکز دارند تا فقط اطلاعات تکنیکی یا ورودی‌های تابع. این نوع لاگ‌برداری می‌تواند به شما کمک کند تا وضعیت عملکرد سیستم و تأثیرات کلیدی آن بر روی کسب‌وکار را بهتر درک کنید.

اهمیت لاگ‌های بیزینسی

  1. تحلیل بهتر: با ثبت فعالیت‌ها و تغییرات در دامنه کسب‌وکار، می‌توانید الگوها و روندهای خاصی را شناسایی کنید.

  2. شناسایی مشکلات: با توجه به لاگ‌های بیزینسی، می‌توانید به‌راحتی مشکلات کارکردی را پیگیری کنید و بدانید که کدام بخش از فرآیند انجام‌نشده یا اشتباه بوده است.

  3. مستندسازی: لاگ‌های بیزینسی به‌عنوان مستندات مفید برای تجزیه و تحلیل پس از یک رخداد یا بررسی عملکرد سیستم عمل می‌کنند.

  4. راهبری تصمیم‌گیری: اطلاعات لاگ‌شده می‌تواند به مدیران و تیم‌ها کمک کند تا تصمیمات بهتری بر اساس داده‌های واقعی هنگام ارزیابی اثرات تغییرات یا تحلیل عملکرد بگیرند.

نحوه‌ی پیاده‌سازی لاگ‌های بیزینسی

برای پیاده‌سازی لاگ‌های بیزینسی در .NET (ASP.NET Core) می‌توانید از فریم‌ورک لاگ‌برداری مثل Serilog، NLog یا Log4Net استفاده کنید و آنها را به نیازهای خود سفارشی‌سازی کنید.

۱. استفاده از Serilog برای لاگ‌های بیزینسی

فرض کنید شما یک تابع دارید که یک سفارش را پردازش می‌کند. به جای ثبت ورودی‌ها و خروجی‌های ساده، می‌توانید یک لاگ بیزینسی اضافه کنید که توضیح می‌دهد چه کاری انجام می‌شود.

public class OrderService
{
    private readonly ILogger<OrderService> _logger;

    public OrderService(ILogger<OrderService> logger)
    {
        _logger = logger;
    }

    public void ProcessOrder(Order order)
    {
        _logger.LogInformation($"Processing order with ID: {order.Id}, amount: {order.Amount}, for customer: {order.CustomerId}");

        // فرض بر این است که لحظه‌ای طول می‌کشد که سفارش پردازش شود
        // و سیستم بین‌المللی رد و بدل می‌شود.

        // انجام عملیات پردازش
        // ...

        _logger.LogInformation($"Successfully processed order ID: {order.Id} for customer: {order.CustomerId}.");
    }
}

۲. ثبت رویدادهای کلیدی

شما می‌توانید از رویدادهای خاص مانند ثبت‌نام کاربر، ویرایش پروفایل، یا خرید استفاده کنید.

public class UserService
{
    private readonly ILogger<UserService> _logger;

    public UserService(ILogger<UserService> logger)
    {
        _logger = logger;
    }

    public void RegisterUser(User user)
    {
        _logger.LogInformation($"User registration started for email: {user.Email}");

        // کد ثبت‌نام کاربر
        // ...

        _logger.LogInformation($"User registration completed for email: {user.Email}");
    }
}

۳. به کارگیری مناطق خاص

شما می‌توانید لاگ‌ها را به دسته‌های خاص دسته‌بندی کرده و به آن‌ها اولویت دهید. این به شما کمک می‌کند که در صورت بروز خرابی یا مشکل، سریع‌تر بتوانید علت را یافته و رسیدگی کنید.

public void HandlePayment(Payment payment)
{
    try
    {
        _logger.LogInformation("Starting payment process...");

        // پردازش پرداخت
        // ...

        _logger.LogInformation($"Payment for order ID {payment.OrderId} was successful.");
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, $"Payment for order ID {payment.OrderId} failed.");
    }
}

نتیجه‌گیری

به این ترتیب، لاگ‌های بیزینسی به شما در تحلیل و درک بهتر عملکرد سیستم کمک می‌کنند و شما را قادر می‌سازند تا تصمیمات بهتری بر اساس داده‌های واقعی اتخاذ کنید. همچنین به ایجاد مستندات مفید و شناسایی مشکلات کمک خواهند کرد. این نوع لاگ‌برداری می‌تواند تأثیرات مثبت زیادی در بهبود فرآیندها و کیفیت خدمات شما داشته باشد.

mehransattary commented 4 days ago

لاگ ها میشه به شکل بیزینیسی باشه یعنی بجای اینکه بگیم این تابع این ورودی هارو دریافت کرد ، بگیم کاری که انجام میسه رو هم کامل بگیم ولاگ کنیم.