【发布时间】:2016-11-20 06:11:13
【问题描述】:
我正在尝试在 ASP.NET 核心应用程序(.NET 框架)中实现 SeriLog
以下是我到目前为止执行的步骤-
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 类的构造函数中添加了以下几行-
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile(Path.Combine(env.ContentRootPath, "log-{Date}.txt"))
.CreateLogger();
3) 在 Startup 类的 configure 方法中添加以下行-
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.TypeActivatorCache.CreateInstance[TInstance](IServiceProvider serviceProvider,类型 implementationType) 在 Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerActivator.Create(ControllerContext 控制器上下文)在 Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerFactory.CreateController(ControllerContext 上下文)在 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__26.MoveNext()
有人可以帮我解决这个问题吗? Serilog 是否缺少任何配置?
【问题讨论】:
标签: asp.net-core asp.net-core-mvc serilog