Рейтинговые книги
Читем онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 592 593 594 595 596 597 598 599 600 ... 642

<b>      &quot;schema&quot;: &quot;Logging&quot;,</b>

<b>      &quot;tableName&quot;: &quot;SeriLogs&quot;,</b>

<b>      &quot;restrictedToMinimumLevel&quot;: &quot;Warning&quot;</b>

<b>    }</b>

  },

  &quot;RebuildDataBase&quot;: false,

<b>  &quot;ApplicationName&quot;: &quot;AutoLot.Api - Prod&quot;,</b>

  &quot;ConnectionStrings&quot;: {

    &quot;AutoLot&quot;: &quot;It's a secret&quot;

  }

}

Обновление Program.cs

Добавьте в файлы Program.cs в проектах AutoLot.Api и AutoLot.Mvc следующий оператор using:

using AutoLot.Services.Logging;

Модифицируйте метод CreateHostBuilder() в обоих проектах, как показано ниже:

public static IHostBuilder CreateHostBuilder(string[] args) =&gt;

  Host.CreateDefaultBuilder(args)

      .ConfigureWebHostDefaults(webBuilder =&gt;

      {

        webBuilder.UseStartup&lt;Startup&gt;();

       }).ConfigureSerilog();

Обновление Startup.cs

Добавьте в файлы Startup.cs в проектах AutoLot.Api и AutoLot.Mvc следующий оператор using:

using AutoLot.Services.Logging;

Затем необходимо поместить новые интерфейсы ведения журнала в контейнер DI. Добавьте в метод ConfigureServices() в обоих проектах такой код:

services.AddScoped(typeof(IAppLogging&lt;&gt;), typeof(AppLogging&lt;&gt;));

Обновление контроллера

Следующее обновление связано с заменой ссылок на ILogger ссылками на IAppLogging. Начните с класса WeatherForecastController в проекте AutoLot.Api. Добавьте в класс следующий оператор using:

using AutoLot.Services.Logging;

Далее измените ILogger&lt;T&gt; на IAppLogging&lt;T&gt;:

[ApiController]

[Route(&quot;[controller]&quot;)]

public class WeatherForecastController : ControllerBase

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

{

  ...

  private readonly <b>IAppLogging</b>&lt;WeatherForecastController&gt; _logger;

  public WeatherForecastController(<b>IAppLogging</b>&lt;WeatherForecastController&gt; logger)

  {

    _logger = logger;

  }

  ...

}

Теперь модифицируйте HomeController в проекте AutoLot.Mvc. Добавьте в класс следующий оператор using:

using AutoLot.Services.Logging;

Измените ILogger&lt;T&gt; на IAppLogging&lt;T&gt;:

[Route(&quot;[controller]/[action]&quot;)]

public class HomeController : Controller

{

  private readonly <b>IAppLogging</b>&lt;HomeController&gt; _logger;

  public HomeController(<b>IAppLogging</b>&lt;HomeController&gt; logger)

  {

    _logger = logger;

  }

  ...

}

После этого регистрация в журнале выполняется в каждом контроллере простым обращением к средству ведения журнала, например:

// WeatherForecastController.cs (AutoLot.Api)

[HttpGet]

public IEnumerable&lt;WeatherForecast&gt; Get()

{

<b>  _logger.LogAppWarning(&quot;This is a test&quot;);</b>

  ...

}

// HomeController.cs (AutoLot.Mvc)

[Route(&quot;/&quot;)]

[Route(&quot;/[controller]&quot;)]

[Route(&quot;/[controller]/[action]&quot;)]

[HttpGet]

public IActionResult Index()

{

<b>  _logger.LogAppWarning(&quot;This is a test&quot;);</b>

  return View();

}

Испытание инфраструктуры ведения журнала

Имея установленную инфраструктуру Serilog, самое время протестировать ведение журналов для приложений. Если вы используете Visual Studio, тогда укажите AutoLot.Mvc в качестве стартового проекта (щелкните правой кнопкой мыши на имени проекта в окне Solution Explorer, выберите в контекстном меню пункт Set as Startup Project (Установить как стартовый проект) и щелкните на кнопке запуска с зеленой стрелкой или нажмите <F5>). В случае работы в VS Code откройте окно терминала (<Ctrl+'>), перейдите в каталог AutoLot.Mvc и введите команду dotnet run.

1 ... 592 593 594 595 596 597 598 599 600 ... 642
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Похожие на Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю книги

Оставить комментарий