ASP.NET Core 中的 Serilog Elasticsearch 代理

问题描述 投票:0回答:1

我目前有一个 .NET 控制台应用程序,我使用下面的部分完整方法将日志记录到 ELK:

private static LoggerConfiguration AddElasticSearch(this LoggerConfiguration config, IConfigurationRoot configuration,
     string keyIdentifier)
{
     var ignoreSslCerts = IgnoreRemoteServerCertificates(configuration);
     var elasticSearchUri = ElasticUrl(configuration);
     var elasticCredentials = ElasticBasicCredentials(configuration);

     if (string.IsNullOrEmpty(elasticSearchUri))
     {
         Console.WriteLine("Elastic search has not been configured - The elastic URL is null or empty");
         return config;
     }

     config.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticSearchUri)) 
     ........
     .......
}

我想使用接收器将数据批处理到 Web API,然后通过类似于下面的接收器发送到 ELK。我想这样做,这样我就不需要为 ELK 生成 API 密钥,并且控制台应用程序不需要知道弹性的 URL 等。此外,如果我想更改日志系统;我可以在后端的一处更改它。

我想我正在尝试使用 ASP.NET Core 创建 ELK 代理。

有人遇到过这样做的文档示例吗?

谢谢

asp.net-core elasticsearch serilog serilog-sinks-elasticsearch
1个回答
0
投票

最好的方法是使用

Serilog.Sinks.Http

一个很好的例子或问题已得到解答:

将 Serilog 日志发布到 Rest api

© www.soinside.com 2019 - 2024. All rights reserved.