以下是从@nblumhardt的文章中的翻译:
接下来,您可以删除其他任何挂起的日志记录器配置:在appsettings.json中没有“Logging”部分的需要,也没有AddLogging(),并且Startup.cs中没有通过ILoggerFactory进行配置。
当我在我的控制器中使用using Serilog;
和ILogger
时,我会遇到异常。
private readonly ILogger _logger;
public CustomersController(ILogger logger)
{
_logger = logger;
}
结果为:
处理请求时发生未处理的异常。
InvalidOperationException: 在尝试激活“Customers.Api.Controllers.CustomersController”时无法解析类型“Serilog.ILogger”的服务。
我是否仍需要在Startup.ConfigureServices()
方法中提供一些信息给DI?
据我所知,我的Program类按照帖子中的说明进行了操作。
public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog()
.Build();
}