Skip to content

Commit a863473

Browse files
authored
Ensure we can handle more data types in ElapsedMillisecond/Elapsed from serilog (#514) (#522)
(cherry picked from commit f973862)
1 parent 42edbca commit a863473

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/Elastic.CommonSchema.Serilog/LogEventConverter.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,13 @@ private static Event GetEvent(LogEvent e)
264264
var hasElapsedMs = e.TryGetScalarPropertyValue(SpecialKeys.Elapsed, out var elapsedMsObj)
265265
|| e.TryGetScalarPropertyValue(SpecialKeys.ElapsedMilliseconds, out elapsedMsObj);
266266

267-
var elapsedMs = hasElapsedMs ? (double?)Convert.ToDouble(elapsedMsObj!.Value) : null;
267+
var elapsedMs = hasElapsedMs ?
268+
elapsedMsObj!.Value is TimeSpan ts
269+
? ts.TotalMilliseconds
270+
: elapsedMsObj.Value is double d
271+
? d
272+
: elapsedMsObj.Value is long l ? l : ToDouble()
273+
: null;
268274

269275
var evnt = new Event
270276
{
@@ -300,6 +306,19 @@ private static Event GetEvent(LogEvent e)
300306
}
301307

302308
return evnt;
309+
310+
double? ToDouble()
311+
{
312+
try
313+
{
314+
return Convert.ToDouble(elapsedMsObj.Value);
315+
}
316+
catch
317+
{
318+
// ignored
319+
}
320+
return null;
321+
}
303322
}
304323

305324
private static Agent? GetAgent(LogEvent e)

0 commit comments

Comments
 (0)