Использование Serilog для входа в Elasticsearch без регистрации в Microsoft - PullRequest
0 голосов
/ 26 апреля 2020

Мне удалось реализовать вход в Elasticsearch в localhost. Однако он регистрирует любой вид активности из ASP. net Core. Простой запуск программы регистрирует около 20 записей. Как я могу войти только мои записи журнала я помещаю в код. Потребуются все уровни серьезности, поэтому изменение минимального уровня журнала не является решением.

private static void ConfigureLogging()
{
    var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
    var configuration = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .AddJsonFile(
            $"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json",
            optional: true)
        .Build();

    Log.Logger = new LoggerConfiguration()
        .WriteTo.Elasticsearch(ConfigureElasticSink(configuration, environment))
        .ReadFrom.Configuration(configuration)
        .CreateLogger();
}

private static ElasticsearchSinkOptions ConfigureElasticSink(IConfigurationRoot configuration, string environment)
{
    return new ElasticsearchSinkOptions(new Uri(configuration["ElasticConfiguration:Uri"]))
    {
        AutoRegisterTemplate = true,
        IndexFormat = $"{Assembly.GetExecutingAssembly().GetName().Name.ToLower().Replace(".", "-")}-{environment?.ToLower().Replace(".", "-")}-{DateTime.UtcNow:yyyy-MM}"
    };
}

Loggly предлагает аналогичные решения, которые мне понадобятся: https://github.com/neutmute/loggly-csharp

1 Ответ

0 голосов
/ 26 апреля 2020

Вы можете переопределить уровень регистрации библиотек вне вашего кода. Это можно сделать в коде или в настройках вашего serilog в вашем файле appsettings. Вот статья, которая объясняет как. https://nblumhardt.com/2019/10/serilog-in-aspnetcore-3/

...