由于某种原因,我发现很难理解Serilog配置的情况。我有一个使用.NET Core 2.1的Web API,并安装了serilog.sink.logstash
。我的启动代码如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
var serverURL = Configuration.GetSection("Logging")["logstashServer"];
var logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithProperty("Enviroment", env.EnvironmentName)
.Enrich.WithProperty("ApplicationName", "MyApp")
.WriteTo.LogstashHttp(serverURL);
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
logger.WriteTo.Console();
}
loggerFactory.AddSerilog();
Log.Logger = logger.CreateLogger();
app.UseCors("CorsPolicy");
app.UseMvc();
}
我的appsettings有一个部分:
"Logging": {
"logstashServer": "http://192.168.0.6:8101",
"IncludeScopes": false,
"Serilog": {
"MinimumLevel": {
"Default": "Error",
"Override": {
"Microsoft": "Error",
"Microsoft.AspNetCore.Hosting": "Error",
"Microsoft.AspNetCore.Mvc": "Error",
"System": "Error"
}
}
}
}
无论我做什么,我都会在控制台和logstash中看到很多不想要的信息被记录,例如:
[14:27:54 INF] 执行操作方法 MyApp.Controllers.LoggerController.Post (MyApp),返回结果 Microsoft.AspNetCore.Mvc.OkResult,用时 0.0771ms。
MyApp> [14:27:54 INF] 执行 HttpStatusCodeResult,设置HTTP状态代码200
MyApp> [14:27:54 INF] 在2.0855ms内执行了动作 MyApp.Controllers.LoggerController.Post (MyApp)
等等。 我已经将日志级别设置为最低错误级别,为什么还会看到这些信息?