2 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
要“靜默”ASP.NET 默認(rèn)日志,您需要將其添加到 appsettings.json 中:
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Warning",
"System": "Warning"
}
}
那么默認(rèn)記錄器將只記錄“Warning”或更低級(jí)別的所有內(nèi)容(有 6 個(gè)級(jí)別的日志: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 與你的配置。此外,它還會(huì)封裝您的 Serilog,以便以后更容易使用其他日志框架
更新:為了刪除以前配置的提供程序,請嘗試添加此行:
new WebHostBuilder()
.ConfigureLogging(builder => builder.ClearProviders()) // <--here

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
就我而言,我必須在Startup.cs/Configure()方法中從 Core 庫設(shè)置 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
啟動(dòng).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 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)