Я пытаюсь реализовать SeriLog в основном приложении ASP.NET (.NET framework)
Ниже приведены шаги, которые я выполнил до сих пор:
1) Добавлены ниже ссылки в Project.json
"Serilog": "2.2.0",
"Serilog.Extensions.Logging": "1.2.0",
"Serilog.Sinks.RollingFile": "2.0.0",
"Serilog.Sinks.File": "3.0.0"
2) Добавлены следующие строки в конструктор вашего класса запуска:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile(Path.Combine(env.ContentRootPath, "log-{Date}.txt"))
.CreateLogger();
3) Добавлена следующая строка в метод настройки вашего класса запуска:
loggerFactory.AddSerilog();
4) Ввод регистратора в HomeController следующим образом:
ILogger logger;
public HomeController(ILogger logger)
{
this.logger = logger;
}
5) В действии "О программе", попытка зарегистрировать исключение, подобное этому -
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
try
{
throw new Exception("Serilog Testing");
}
catch (System.Exception ex)
{
this.logger.Error(ex.Message);
}
return View();
}
При запуске моего приложения я получаю ошибку ниже -
System.InvalidOperationException: невозможно разрешить службу для типа «Serilog.ILogger» при попытке активировать «AspNetCore_SeriLog_trial1.Controllers.HomeController». в Microsoft.Extensions.Internal.ActivatorUtilities.GetService (IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired)
в lambda_method (Closure, IServiceProvider, Object []) в Microsoft.AspNetCore.Mvc.Internal.Type TInstance] (IServiceProvider serviceProvider, тип implementationType) в Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerActivator.Create (ControllerContext controllerContext) в Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerFactory.Createc.Internal context ControllerActionInvoker.d__26.MoveNext ()
Может ли кто-нибудь помочь мне в этом? Отсутствует какая-либо конфигурация для Serilog?