27 lines
819 B
C#
27 lines
819 B
C#
using Microsoft.ApplicationInsights.Channel;
|
|
|
|
namespace PlanTempus.Core.Telemetry
|
|
{
|
|
public class SeqLoggingTelemetryChannel : InMemoryChannel, ITelemetryChannel
|
|
{
|
|
private readonly IMessageChannel<ITelemetry> _messageChannel;
|
|
|
|
public SeqLoggingTelemetryChannel(IMessageChannel<ITelemetry> messageChannel)
|
|
{
|
|
_messageChannel = messageChannel;
|
|
}
|
|
public new void Send(ITelemetry telemetry)
|
|
{
|
|
var writeTask = _messageChannel.Writer.WriteAsync(telemetry).AsTask();
|
|
writeTask.ContinueWith(t =>
|
|
{
|
|
if (t.Exception != null)
|
|
{
|
|
throw t.Exception;
|
|
}
|
|
}, TaskContinuationOptions.OnlyOnFaulted);
|
|
|
|
base.Send(telemetry);
|
|
}
|
|
}
|
|
}
|