Я пытаюсь реализовать SeriLog в базовом приложении ASP.NET (.NET Framework)Решение об ошибке - Не удалось разрешить услугу типа «Serilog.ILogger»
Ниже шаги я выполнил так далеко
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) Добавлены следующие строки в конструкторе Startup class-
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile(Path.Combine(env.ContentRootPath, "log-{Date}.txt"))
.CreateLogger();
3) Добавлено следующую строку в метод настройки вашего Startup class-
loggerFactory.AddSerilog();
4) Впрыскивание логгер HomeController как this-
ILogger logger;
public HomeController(ILogger logger)
{
this.logger = logger;
}
5) В О действии, пытаясь войти исключение как this-
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();
}
о запуске моего приложения, я получаю ниже error-
System.InvalidOperationException: Не удается разрешить услугу типа 'Serilog.ILogger' при попытке активировать 'AspNetCore_SeriLog_trial1.Controllers.HomeController'. на Microsoft.Extensions.Internal.ActivatorUtilities.GetService (IServiceProvider зр, тип тип, тип requiredBy, булева isDefaultParameterRequired)
на lambda_method (Закрытие, IServiceProvider, Object []) в Microsoft.AspNetCore.Mvc.Internal.TypeActivatorCache. CreateInstance [TInstance] (IServiceProvider ServiceProvider, Тип ImplementationType) при Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerActivator.Create (controllerContext controllerContext) при Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerFactory.CreateController (controllerContext контекста) при Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__26.MoveNext()
Может ли кто-нибудь помочь мне в этом? Любая конфигурация отсутствует для Serilog?
Я попытался это, но получаю ошибку - 'Error \t CS0308 \t Не-универсальный тип«ILogger»не может быть использован с типом arguments' – Sanket
вы используете интерфейс ILogger Сери попробуйте заменить его на интерфейс ILogger корпорации Майкрософт, присутствует в библиотеке регистрации. – dotnetstep