【问题标题】:Using Serilog to log Elasticsearch without Microsoft logging使用 Serilog 记录 Elasticsearch 而无需 Microsoft 日志记录
【发布时间】:2020-08-10 05:18:18
【问题描述】:

我设法在 localhost 中实现了对 Elasticsearch 的登录。然而,它记录了来自 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

【问题讨论】:

    标签: c# asp.net-core elasticsearch serilog


    【解决方案1】:

    您可以在代码之外覆盖库的日志记录级别。这可以在代码或 appsettings 文件中的 serilog 配置设置中完成。这是一篇解释如何的文章。 https://nblumhardt.com/2019/10/serilog-in-aspnetcore-3/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      相关资源
      最近更新 更多