由于 Serilog.Sinks.Elasticsearch 已过时,我正在尝试让 Elastic.Serilog.Sings 工作。
所以我这样做:
var uris = new List<Uri>() { new Uri("http://a-good-url:9200") };
var loggerConfig = new LoggerConfiguration()
.ReadFrom.Configuration(configuration, options)
.WriteTo.Elasticsearch(uris, o =>
{
o.ChannelDiagnosticsCallback = l => { SelfLog.WriteLine($"Failure={l.PublishSuccess}, Message={l}, Exception={l.ObservedException}"); };
o.BootstrapMethod = BootstrapMethod.Failure;
o.MinimumLevel = LogEventLevel.Information;
o.ConfigureChannel = channel =>
{
channel.ExportResponseCallback = (response, buffer) => SelfLog.WriteLine($"Written {buffer.Count} logs to Elasticsearch: {response.ApiCallDetails.HttpStatusCode}");
};
});
Log.Logger = loggerConfig.CreateLogger();
但我收到此错误:
“通过通道发布失败:EcsDataStreamChannel`1。 导出缓冲区:0 出口商品: 0 导出响应:0 导出重试:0 出口排放:0 导出退回的项目以重试:False 入站缓冲区读取循环已启动:True 入站缓冲区发布:0 入站缓冲区发布失败:0 出站缓冲区读取循环已启动:True 出站缓冲区读取循环已退出:False 出站缓冲区发布:0 出站缓冲区发布失败:0 例外:无 ”
另外,我不知道如何告诉它使用特定索引,例如:“my-log-{0:yyyy.MM}”。我该怎么做?
我有你的确切错误...你成功了吗?