2 回答

TA貢獻1854條經驗 獲得超8個贊
要“靜默”ASP.NET 默認日志,您需要將其添加到 appsettings.json 中:
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Warning",
"System": "Warning"
}
}
那么默認記錄器將只記錄“Warning”或更低級別的所有內容(有 6 個級別的日志:Trace、Debug、Information、Warning、Error Critical)。另外,為了啟用 Serilog,您只需要添加此包:
<PackageReference Include="Serilog.AspNetCore" Version="#version#" />
并將其添加到您的Program.cs:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog(); //this line
然后你可以簡單地ILogger<T>使用 DI 注入,它將使用 Serilog 與你的配置。此外,它還會封裝您的 Serilog,以便以后更容易使用其他日志框架
更新:為了刪除以前配置的提供程序,請嘗試添加此行:
new WebHostBuilder()
.ConfigureLogging(builder => builder.ClearProviders()) // <--here

TA貢獻1846條經驗 獲得超7個贊
就我而言,我必須在Startup.cs/Configure()方法中從 Core 庫設置 Serilog 的 ILogger。
程序.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureServices(services => services.AddAutofac())
.UseStartup<Startup>()
.UseSerilog(); // Added this line as per docs
啟動.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IZLogger zLogger)
{
...
Log.Logger = zLogger.GetCurrentClassLogger<Startup>(); // Set Serilog's ILogger from Core library
app.UseSerilogRequestLogging(); // Added this line as per docs
...
}
日志示例:
2019-07-22 19:01:03.179 -04:00 | [INFO] | Request starting HTTP/1.1 GET https://localhost:5001/favicon.ico
2019-07-22 19:01:03.180 -04:00 | [INFO] | HTTP GET /favicon.ico responded 404 in 0.394846 ms
2019-07-22 19:01:03.181 -04:00 | [INFO] | Request finished in 1.8292ms 404 text/plain
- 2 回答
- 0 關注
- 195 瀏覽
添加回答
舉報