Skip to content

Instantly share code, notes, and snippets.

@nenoNaninu
Last active March 21, 2024 16:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nenoNaninu/8924913be917c3048242ec670a4c64bd to your computer and use it in GitHub Desktop.
Save nenoNaninu/8924913be917c3048242ec670a4c64bd to your computer and use it in GitHub Desktop.
HttpMessageHandlerActivityOvserver.cs
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Microsoft.Extensions.Logging;
namespace MyService.Diagnostics;
class HttpMessageHandlerActivityOvserver : IObserver<DiagnosticListener>
{
private readonly ILogger<HttpMessageHandlerActivityOvserver> _logger;
public HttpMessageHandlerActivityOvserver(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<HttpMessageHandlerActivityOvserver>();
}
public void OnNext(DiagnosticListener listener)
{
if (listener.Name == "HttpHandlerDiagnosticListener")
{
listener.Subscribe(new CoreOvserver(_logger));
}
}
public void OnCompleted()
{
}
public void OnError(Exception error)
{
}
private class CoreOvserver : IObserver<KeyValuePair<string, object?>>
{
private readonly ILogger<HttpMessageHandlerActivityOvserver> _logger;
public CoreOvserver(ILogger<HttpMessageHandlerActivityOvserver> logger)
{
_logger = logger;
}
public void OnNext(KeyValuePair<string, object?> keyValuePair)
{
_logger.LogInformation("Received activity event from HttpMessageHandler. Event name is {EventName}.", keyValuePair.Key);
}
public void OnCompleted()
{
}
public void OnError(Exception error)
{
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment