آموزش logging) ASP.NET CORE)

آموزش logging) ASP.NET CORE)

ما در این مقاله نحوه ورود به سیستم را از طریق ASP.NET CORE به شما آموزش خواهیم داد. بنابراین تا پایان این مقاله با ما همراه باشید.

net core logging

بسم الله الرحمن الرحیم

آموزش برنامه نویسی

اموزش ASP.NET CORE (logging)

--------------------------------------------------

ما در این مقاله نحوه ورود به سیستم را از طریق ASP.NET CORE به شما آموزش خواهیم داد. تا پایان این مقاله با ما همراه باشید.

ASP.NET CORE  از قابلیت "ورود به سیستم" پشتیبانی می کند. با این حال ما می توانیم به راحتی در برنامه ASP.NET CORE از ارئه دهنده خدمات ثبت دامنه استفاده کنیم.

قبل از اینکه ببینیم اینکار چگونه در ASP.NET CORE پیاده سازی می شود، بیایید با مهم ترین ورودی ها و کلاس های ورود به سیستم آشنا شویم.

توجه داشته باشید که Microsoft.Extensions.logging نام فایلی است که شما می توانید به این کلاس ها دسترسی پیدا کنید.

  1. ILoggingFactory
  2. ILoggingProvider
  3. ILogger
  4. LoggingFactory

 

تصویر زیر ارتباط بین این کلاس ها را نشان می دهد.

logging infrastructure

ILoggingFactory

  • ILoggingFactory یک رابط برای ایجاد یک ILogger مناسب و همچنین اضافه کردن ILogger Provider است.

public interface ILoggerFactory : IDisposable
{
    ILogger CreateLogger(string categoryName);
    void AddProvider(ILoggerProvider provider);
}


در ASP.NET CORE  کلاسی به اسم LoggerFactory وجود دارد که رابط ILoggerFactory را ایجاد می کند. ما می توانیم از آن برای اضافه کردن نمونه ای از نوع ILonggerProvider استفاده کنیم.

 

ASP.NET CORE  زمان اجرا، یک نمونه از کلاس  LoggerFactory را ایجاد می کند و آن را برای رابط ILoggerFactory در هنگام اجرای برنامه، ثبت می کند. بنابراین ما می توانیم رابط ILoggerFactory را در هر نقطه ای از برنامه استفاده کنیم.

ILoggingProvider

  • ILoggingProvider مدیریت ILogger را، مناسب با طبقه بندی (کتگوری) ورودی ها تعیین می کند.


public interface ILoggerProvider : IDisposable
{
   ILogger CreateLogger(string categoryName);
}




به طور کلی ما با استفاده از رابط ILoggingProvider کتگوری های مربوط به سیستم را مشخص می کنیم.

  • ILogger 

رابط ILogger شامل روش هایی برای ورود به حافظه اصلی است.


public interface ILogger
{
    void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter);
    bool IsEnabled(LogLevel logLevel);
    IDisposable BeginScope(TState state);
} 




روش های ورود به سیستم در ASP.NET CORE

  1. Console
  2. Debug
  3. EventSource
  4. EventLog
  5. TraceSource
  6. Azure App Service

در این قسمت اجازه دهید یک نمای کلی از Consol Logger داشته باشیم.

Consol Logger

بسته Microsoft.Extensions.Logging.Console شامل کلاس های ورود به سیستم است که ورودی و خروجی ها را به کنسول ارسال می کند.

تصویر زیر کلاس های مربوط برای ورود به کنسول را نشان می دهد.

console logger

همانطور که در تصویر بالا می ببینید ConsolLogger، ILogger را اجرا می کند و ConsoleLoggingProvider، ILoggingProvider را اجرا می کند.

کلاس ConsolLoggerExtensions شامل فرمت AddConsole() است که Logger Consol را به LoggerFactory اضافه می کند.

حال اجازه دهید از Consol Logger برای نمایش ورودی و خروجی ها به کنسول در هر دو برنامه ASP.NET CORE 1.X و 2.Xاستفاده کنیم.

Consol Logger در ASP.NET CORE 1.X

  • نصب Nuget Package

ASP.NET CORE 1.X

اگر که کلاس  Microsoft.Extensions.Logging.Console در فایل Project.json ذخیره نشده باشد، شما باید به صورت دستی آن را به پروژه اضافه کنید.




"dependencies": {
        "Microsoft.NETCore.App": {
            "version": "1.0.1",
            "type": "platform"
        },
        "Microsoft.AspNetCore.Diagnostics": "1.0.0",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.Extensions.Logging.Console": "1.0.0"
    } 


ویژوال استودیو کلاس ها و بسته ها را به طور خودکار به برنامه اضافه می کند.

 

 

ASP.NET CORE 2.X

به طور پیش فرض کلاس  Microsoft.Extensions.Logging.Console در بسته Microsoft.Aspnetcore.All وجود دارد و نیازی نیست که ما آن را به طور جداگانه در ASP.NET CORE 2.X اضافه کنیم.

  • Use Provider

ASP.NET CORE 1.X

برای استفاده از Consol Logger ابتدا باید آن را پیکربندی کنیم. سپس ConsoleLoggerProvider را با استفاده از کلاس LoggerFactory به لیست ارائه دهندگان اضافه کنیم  و سپس با متد AddProvider() آن را Add کنید.




public class Startup
{
    public Startup()
    {
    } 
 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddProvider(new ConsoleLoggerProvider((category, logLevel) => logLevel >= LogLevel.Information, false));
        
        //code removed for clarity 
    }
}



اکنون Consol Logger را به پروژه اضافه کنید:



public class Startup
{
    public Startup()
    {
    } 
 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole();

        //code removed for clarity 
    }
}




ASP.NET CORE 2.X

کلاس CreateDefaultBilder() در حال حاضر شامل کنسول های ورود به سیستم و خطایابی می باشد. بنابراین نیازی به اضافه کردن آن در متد Configure() در ASP.NET CORE 2.X نیست.

  • Create Logs

" این مرحله هم در ASP.NET CORE 1.X و 2.x قابل استفاده است. "

در این مرحله ما ورودی های کنسول را به برنامه اضافه می کنیم. ما می توانیم با استفاده از ILogger در کلاس LoggerFactory ورودی ها را اضافه کنیم.



public class Startup
{
    public Startup()
    {
    } 
 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {

        loggerFactory.AddConsole();

        //start logging to the console
        var logger = loggerFactory.CreateLogger();
        logger.LogInformation("Executing Configure()");

        //code removed for clarity 
    }
}

همچنین می توانیم از ILogger در هر برنامه کاربردی استفاده کنیم. بعنوان مثال، ILogger در MVC-Controller به شکل زیر قابل استفاده است:



public class HomeController : Controller
{
    ILogger _logger;

    public HomeController(ILogger logger)
    {
        _logger = logger;
    }
    public IActionResult Index()
    {
        _logger.LogInformation("Executing Home/Index");

        return View();
    } 
}



Log Levels (سطوح ورود در ASP.NET CORE)

  • سطوح ورود، اهمیت پیام های ورودی را نشان می دهد.

log levels

برای نشان دادن سطح پیام های ورودی با استفاده از متد Extension به شکل زیر عمل می کنیم:





public class HomeController : Controller
{
    ILogger _logger;

    public HomeController(ILogger logger)
    {
        _logger = logger;
    }

    public IActionResult Index(string id)
    {
        _logger.LogInformation("Home/Index Executing..");

        if (String. IsNullOrEmpty(id))
        {
            _logger.LogWarning(LoggingEvents.GET_ITEM_NOTFOUND, "Index({ID}) NOT FOUND", id);

            return NotFound();
        }

        return View();
    } 
}




به این شکل می توانیم از طریق ASP.NET CORE وارد سیستم شویم.

"امیدواریم از این مقاله لذت کافی برده باشید"

"مجموعه ABLY"

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس