Как указано в этой ссылке, в приложении .net core2.1 web.api реализован приведенный ниже код для отслеживания запросов, отличных от HTTP (т. е. вызовов redis), с помощью Application Insights
private ReviewModel<T> GetCachedData<T>(string id)
{
try
{
var obj = default(RedisValue);
_retryPolicy.Execute(() =>
{
using (var getReviewsOperation = _telemetryClient.StartOperation<DependencyTelemetry>("RedisCall"))
{
obj = _database.StringGet(id); // external call to redis server
}
});
var review = string.IsNullOrEmpty(obj) || !obj.HasValue ?
default(ReviewModel<T>) : _serializer.Deserialize<ReviewModel<T>>(obj );
return review;
}
catch (Exception ex)
when (ex is RedisException)
{
//how to log the exception cases in dependency table of application insights log?
_log.LogError($"Redis exception occurred : ", {ex.Message});
return null;
}
}
Приведенный выше код успешно регистрирует сведения о вызове Redis в таблице зависимостей журнала аналитики приложения. Но как записать в журнал сведения о вызове Redis в таблице зависимостей журнала аналитики приложения в сценариях исключений со значением свойства успеха как false?