從@nblumhardt的post:地圖ILogger到Serilog的記錄器ASP.NET的Core 2採伐更新後
然後,您可以繼續,並刪除掛在任何其他記錄器配置:沒有必要爲一個「記錄「appsettings.json中的部分,任何地方都沒有AddLogging(),也沒有通過Startup.cs中的ILoggerFactory進行配置。
當我的控制器中有using Serilog;
和時,我收到一個異常。
private readonly ILogger _logger;
public CustomersController(ILogger logger)
{
_logger = logger;
}
結果:
未處理的異常而處理請求時。
InvalidOperationException:嘗試激活「Customers.Api.Controllers.CustomersController」時無法解析類型爲「Serilog.ILogger」的服務。
我還需要在Startup.ConfigureServices()
方法中向DI提供一些信息嗎?
據我所知,我的程序類遵循了帖子中的說明。從ILogger logger
到ILogger<CustomersController>
記錄
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();
}
謝謝。我重置我的編輯來測試它,它工作。我們知道爲什麼嗎? :-) – leon
@leon調查[爲什麼ASP.NET核心DI知道如何解決ILogger,但不是ILogger?](https://stackoverflow.com/questions/38255053/why-asp-net-core-di-也不知道的是如何對解決-iloggert,但並非ilogger) –
Set