如何在 AspNetCore 2.2 NLog 中关闭 Microsoft 日志
How to turn off Microsoft Logs in AspNetCore 2.2 NLog
以下是我的日志
[2019-05-07 15:55:38.4270][PC-20170829ROEW][Info] my logs recorded
[2019-05-07 15:55:38.4929][PC-20170829ROEW][Info] Route matched with {action = >"Get", controller = "Values"}. Executing action >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web)
[2019-05-07 15:55:38.5798][PC-20170829ROEW][Info] Executing action method >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web) - Validation >state: Valid
[2019-05-07 15:55:38.6066][PC-20170829ROEW][Info] Executed action method >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web), returned >result Microsoft.AspNetCore.Mvc.ObjectResult in 22.6363ms.
[2019-05-07 15:55:38.6066][PC-20170829ROEW][Info] Executing ObjectResult, >writing value of type 'System.String[]'.
我想关闭所有微软默认日志(最后四条记录),只保留我已经记录的日志(第一条记录)。
我修改appsettings.json以下
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
在这种情况下,我记录的日志将不会输出。如果我去掉"Microsoft.AspNetCore.Mvc": "Warning" 我记录的日志会输出。我应该如何修改它?
appsettings.json
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
配置在Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
env.ConfigureNLog("NLog.config");
loggerFactory.AddNLog();
app.UseMiddleware<CustomMiddleware>();
app.UseMvc();
}
Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((builderContext, config) =>
{
config.AddJsonFile("appsetting.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{builderContext.HostingEnvironment.EnvironmentName}.json", true, true)
;
})
.UseStartup<Startup>();
如果您在 NLog.config 中的 file-Layout 中包含 ${logger}
,那么帮助您设置 logger-filter.
会容易得多
但我在 google 上发现了这个随机线索:
Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor:Information: Executing ObjectResult
所以我想您需要将 MEL-Config 更改为:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Infrastructure": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
甚至可以考虑这样做:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
以下是我的日志
[2019-05-07 15:55:38.4270][PC-20170829ROEW][Info] my logs recorded
[2019-05-07 15:55:38.4929][PC-20170829ROEW][Info] Route matched with {action = >"Get", controller = "Values"}. Executing action >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web)
[2019-05-07 15:55:38.5798][PC-20170829ROEW][Info] Executing action method >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web) - Validation >state: Valid
[2019-05-07 15:55:38.6066][PC-20170829ROEW][Info] Executed action method >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web), returned >result Microsoft.AspNetCore.Mvc.ObjectResult in 22.6363ms.
[2019-05-07 15:55:38.6066][PC-20170829ROEW][Info] Executing ObjectResult, >writing value of type 'System.String[]'.
我想关闭所有微软默认日志(最后四条记录),只保留我已经记录的日志(第一条记录)。 我修改appsettings.json以下
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
在这种情况下,我记录的日志将不会输出。如果我去掉"Microsoft.AspNetCore.Mvc": "Warning" 我记录的日志会输出。我应该如何修改它?
appsettings.json
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
配置在Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
env.ConfigureNLog("NLog.config");
loggerFactory.AddNLog();
app.UseMiddleware<CustomMiddleware>();
app.UseMvc();
}
Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((builderContext, config) =>
{
config.AddJsonFile("appsetting.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{builderContext.HostingEnvironment.EnvironmentName}.json", true, true)
;
})
.UseStartup<Startup>();
如果您在 NLog.config 中的 file-Layout 中包含 ${logger}
,那么帮助您设置 logger-filter.
但我在 google 上发现了这个随机线索:
Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor:Information: Executing ObjectResult
所以我想您需要将 MEL-Config 更改为:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Infrastructure": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
甚至可以考虑这样做:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}