using AutoLot.Services.Logging;
Модифицируйте метод CreateHostBuilder
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup
}).ConfigureSerilog;
Обновление Startup.cs
Добавьте в файлы Startup.cs
AutoLot.Api и AutoLot.Mvc следующий оператор using:using AutoLot.Services.Logging;
Затем необходимо поместить новые интерфейсы ведения журнала в контейнер DI. Добавьте в метод ConfigureServices
services.AddScoped(typeof(IAppLogging<>), typeof(AppLogging<>));
Обновление контроллера
Следующее обновление связано с заменой ссылок на ILogger
IAppLogging. Начните с класса WeatherForecastController в проекте AutoLot.Api. Добавьте в класс следующий оператор using:using AutoLot.Services.Logging;
Далее измените ILogger
IAppLogging:[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
...
private readonly IAppLogging
public WeatherForecastController(IAppLogging
{
_logger = logger;
}
...
}
Теперь модифицируйте HomeController
AutoLot.Mvc. Добавьте в класс следующий оператор using:using AutoLot.Services.Logging;
Измените ILogger
IAppLogging:[Route("[controller]/[action]")]
public class HomeController : Controller
{
private readonly IAppLogging
public HomeController(IAppLogging
{
_logger = logger;
}
...
}
После этого регистрация в журнале выполняется в каждом контроллере простым обращением к средству ведения журнала, например:
// WeatherForecastController.cs (AutoLot.Api)
[HttpGet]
public IEnumerable
{
_logger.LogAppWarning("This is a test");
...
}
// HomeController.cs (AutoLot.Mvc)
[Route("/")]
[Route("/[controller]")]
[Route("/[controller]/[action]")]
[HttpGet]
public IActionResult Index
{
_logger.LogAppWarning("This is a test");
return View;
}
Испытание инфраструктуры ведения журнала
Имея установленную инфраструктуру Serilog, самое время протестировать ведение журналов для приложений. Если вы используете Visual Studio, тогда укажите AutoLot.Mvc
AutoLot.Mvc и введите команду dotnet run.В Visual Studio автоматически запустится браузер с представлением Home/Index
https://localhost:5001. После загрузки вы можете закрыть браузер, поскольку обращение к средству ведения журнала произошло при загрузке домашней страницы. Закрытие браузера в случае использования Visual Studio останавливает отладку. Чтобы остановить отладку в VS Code, нажмите <Ctrl+C> в окне терминала.В каталоге проекта вы увидите файл по имени ErrorLogГГГMMДД.txt
[ГГ-ММ-ДД чч:мм:сс Warning]AutoLot.Mvc -
Dev:AutoLot.Mvc.Controllers.HomeController
Message:This is a test
in method Index at
D:\Projects\Books\csharp9-wf\Code\New\Chapter_29\AutoLot.Mvc\Controllers\
HomeController.cs:30
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT