Как отключить логи Microsoft в AspNetCore 2.2 NLog - PullRequest
0 голосов
/ 08 мая 2019

Ниже приведены мои журналы

[2019-05-07 15: 55: 38.4270] [PC-20170829ROEW] [Информация] Записаны мои журналы

[2019-05-07 15: 55: 38.4929] [PC-20170829ROEW] [Информация] Маршрут соответствует {action => "Get", controller = "Values"}.Выполнение действия> QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web)

[2019-05-07 15: 55: 38.5798] [PC-20170829ROEW] [Информация] Выполнение метода действия> QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web) - Проверка> состояние: Действительный

[2019-05-07 15: 55: 38.6066] [PC-20170829ROEW] [Информация] Метод выполненного действия> QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web), вернул> результат Microsoft.AspNetCore.Mvc.ObjectResult в 22,6363мс.

[2019-05-07 15: 55: 38.6066] [PC-20170829ROEW] [Информация] Выполнение ObjectResult,> запись значения типа 'System.String []'.

Я хочу закрыть все журналы Microsoft по умолчанию (последние четыре записи), сохранить только те журналы, которые я записал (первая запись).Я изменяю appsettings.json на следующем

"Logging": {
  "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore.Hosting": "Warning",
    "Microsoft.AspNetCore.Routing": "Warning",
    "Microsoft.AspNetCore.Mvc": "Warning"
 }

, в этом случае мои записанные журналы не будут выводиться.если я удаляю «Microsoft.AspNetCore.Mvc»: «Предупреждение», мои записанные журналы будут выводиться. Как мне его изменить?

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>();

1 Ответ

1 голос
/ 08 мая 2019

Если бы вы включили ${logger} в свой файл-макет в NLog.config, то было бы намного проще помочь вам настроить фильтр журнала.

Но я нашел эту случайную подсказку в 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"
 }
...