Serilog, кажется, игнорирует уровень журнала при развертывании

У нас включен Serilog для нашего.net6веб-приложений и развернутых в службах приложений Azure для входа в Elastic.

Локально кажется, что уровни журналов соблюдаются, но когда мы развертываем в Azure, кажется, что они просто игнорируются и регистрируются.InformationиDebugсообщения, а не использовать минимальный уровень журнала, который был фактически установлен.

The Program.csэто так:

      using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Serilog;
using System;
using System.IO;
using System.Threading.Tasks;

namespace MyApp
{
    public class Program
    {
        public async static Task<int> Main(string[] args)
        {
            var configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .AddEnvironmentVariables()
                .Build();

            Serilog.Debugging.SelfLog.Enable(message => Console.WriteLine(message));

            Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(configuration)
                .CreateLogger();

            try
            {
                Log.Information("Starting");
                await CreateHostBuilder(args).Build().RunAsync();
                return 0;
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, $"host terminated unexpectedly {ex}");
                return 1;
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
                 Host.CreateDefaultBuilder(args)
                 .ConfigureWebHostDefaults(webBuilder =>
                 {
                     webBuilder.UseStartup<Startup>();
                 })
                 .UseSerilog();
    }
}

И раздел Serilog с AppSettings.json

      "Serilog": {
    "Using": ["Serilog.Sinks.Console", "Serilog.Sinks.Elasticsearch"],
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
          "outputTemplate": "[{Timestamp} {Level:u3}] {Message:lj} <s:{SourceContext}>{NewLine}{Exception}"
        }
      },
      {
        "Name": "Elasticsearch",
        "Args": {
          "nodeUris": "https://<<<ELASTICHOST>>>",
          "indexFormat": "logs-{0:yyyy.MM.dd}",
          "connectionGlobalHeaders": "Authorization=ApiKey <<<KEY>>>>;",
          "emitEventFailure": "WriteToSelfLog",
          "autoRegisterTemplate": true,
          "registerTemplateFailure": "IndexAnyway",
          "autoRegisterTemplateVersion": "ESv7",
          "batchPostingLimit": 50,
          "batchAction": "Create",
          "period": 2,
          "inlineFields": true,
          "deadLetterIndexName": "deadletter-{0:yyyy.MM.dd}"
        }
      }
    ],
    "Enrich": ["FromLogContext"],
    "Properties": {
      "Application": "MyAzureAppServiceApp",
      "Environment": "Live"
    }
  }

Настройки в конкретной службе приложений таковы:

      Serilog__MinimumLevel__Default = Warning
Serilog__MinimumLevel__Override__Microsoft = Warning
Serilog__MinimumLevel__Override__System = Warning

0 ответов

Другие вопросы по тегам