Skip to content
This repository was archived by the owner on Jun 1, 2024. It is now read-only.

Commit 9d9930e

Browse files
matthewDDennismivano
authored andcommitted
Fixes two problems, needing to use indexers on a dynamic, and a logic error that prevented the durable log files from being processed. (#266)
1 parent 6b63825 commit 9d9930e

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

src/Serilog.Sinks.Elasticsearch/Sinks/ElasticSearch/Durable/Elasticsearch/ElasticsearchLogClient.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public async Task<SentPayloadResult> SendPayloadAsync(List<string> payload)
3535
return await SendPayloadAsync(payload, true);
3636
}
3737

38-
public async Task<SentPayloadResult> SendPayloadAsync(List<string> payload,bool first)
38+
public async Task<SentPayloadResult> SendPayloadAsync(List<string> payload, bool first)
3939
{
4040
try
4141
{
@@ -45,10 +45,10 @@ public async Task<SentPayloadResult> SendPayloadAsync(List<string> payload,bool
4545
if (response.Success)
4646
{
4747
var cleanPayload = new List<string>();
48-
var invalidPayload = GetInvalidPayloadAsync(response, payload,out cleanPayload);
49-
if ((cleanPayload?.Any() ?? false) && first)
48+
var invalidPayload = GetInvalidPayloadAsync(response, payload, out cleanPayload);
49+
if ((cleanPayload?.Any() == false) && first)
5050
{
51-
await SendPayloadAsync(cleanPayload,false);
51+
await SendPayloadAsync(cleanPayload, false);
5252
}
5353

5454
return new SentPayloadResult(response, true, invalidPayload);
@@ -85,16 +85,17 @@ private InvalidResult GetInvalidPayloadAsync(DynamicResponse baseResult, List<st
8585
bool hasErrors = false;
8686
foreach (dynamic item in items)
8787
{
88-
long? status = item.index?.status;
88+
var itemIndex = item?["index"];
89+
long? status = itemIndex?["status"];
8990
i++;
9091
if (!status.HasValue || status < 300)
9192
{
9293
continue;
9394
}
9495

9596
hasErrors = true;
96-
var id = item.index?._id;
97-
var error = item.index?.error;
97+
var id = itemIndex?["_id"];
98+
var error = itemIndex?["error"];
9899
if (int.TryParse(id.Split('_')[0], out int index))
99100
{
100101
SelfLog.WriteLine("Received failed ElasticSearch shipping result {0}: {1}. Failed payload : {2}.", status, error?.ToString(), payload.ElementAt(index * 2 + 1));

0 commit comments

Comments
 (0)