Проблема с ведением журнала .netcore 2.1 в BLOB-объектах Azure. - PullRequest
0 голосов
/ 08 июля 2019

У меня есть .netcore 2.1 api.Я пытаюсь выполнить вход в BLOB-объекты Azure.

Я использую Microsoft.Extensions.Logging.AzureAppServices (версия 2.2.0) в API-интерфейсах .netcore 2.2 без проблем, и он записывает информацию в BLOB-объекты Azure.красиво.

Но когда я пытаюсь использовать тот же код с Microsoft.Extensions.Logging.AzureAppServices (версия 2.1.1) в .netcore 2.1, он не может записать информацию (даже если я получаю желаемое из APIконечная точка).

Код, который я пробовал, в program.cs

public static void Main(string[] args)
    {
        var host = CreateWebHostBuilder(args).Build();

        var logger = host.Services.GetRequiredService<ILogger<Program>>();
        logger.LogInformation("Main() method.");

        host.Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureLogging(logging =>
            {
                logging.AddAzureWebAppDiagnostics();
            })
            .ConfigureServices(serviceCollection => serviceCollection
                .Configure<AzureFileLoggerOptions>(options =>
                {
                    options.FileName = "azure-diagnostics-";
                    options.FileSizeLimit = 50 * 1024;
                    options.RetainedFileCountLimit = 5;
                }).Configure<AzureBlobLoggerOptions>(options =>
                {
                    options.BlobName = "Log.txt";
                }))
            .UseStartup<Startup>();
}

И в лазурь я добавил настройки, как на рисунке ниже.

enter image description here

Теперь, чтобы проверить это, я добавил некоторые записи в starup.cs и program.cs и controller.cs.

Печатается журнал из Startup.csв выходные двоичные объекты, но другие файлы CS не могут записать информацию в BLOB-объект.

Кто-нибудь знает, что я делаю неправильно?

1 Ответ

0 голосов
/ 15 июля 2019

Чтобы настроить параметры провайдера, используйте AzureFileLoggerOptions и AzureBlobLoggerOptions , как показано в следующем примере:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
        .ConfigureServices(serviceCollection => serviceCollection
                .Configure<AzureFileLoggerOptions>(options =>
                {
                    options.FileName = "azure-diagnostics-";
                    options.FileSizeLimit = 50 * 1024;
                    options.RetainedFileCountLimit = 5;
                }).Configure<AzureBlobLoggerOptions>(options =>
                {
                    options.BlobName = "log.txt";
                }))
        .UseStartup<Startup>();

или как показано ниже:

public void ConfigureServices(IServiceCollection services)
    {
        //...
        services.Configure<AzureFileLoggerOptions>(Configuration.GetSection("AzureLogging"));
    } 

Appsettings.json

"AzureLogging": {
     "FileName" : "azure-diagnostics-",
     "FileSizeLimit": 50024,
     "RetainedFileCountLimit": 5
}

При развертывании в приложении службы приложений приложение учитывает параметры в разделе журналов службы приложений на странице службы приложений портала Azure. После обновления следующих параметров изменения вступают в силу немедленно, не требуя перезапуска или повторного развертывания приложения.

  • Регистрация приложений (файловая система)
  • Журнал приложений (Blob)

enter image description here

Пожалуйста, убедитесь, что настройки, как указано выше. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...