昨晚,我们收到了数百个来自Azure Web应用程序的错误投诉。
在Azure Portal中,我们查看了Web应用程序,可以看到我们收到了数千个5xx错误。
该应用程序是. NET 6 Web API,并配置为使用Application Insights SDK。然而,Application Insights在同一时间段内仅显示44个错误。它还显示了在此时间段内成功的数千个请求。因此,我们知道ApplicationInsights是连接的&工作的,因为那里有成千上万的日志,但我们希望看到更多的错误日志。
这是我们的appsets.json:
{
"AllowedHosts": "*",
"ApplicationInsights": {
"InstrumentationKey": "Instrumentation Key from Azure"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
"ApplicationInsights": {
"LogLevel": {
"Default": "Error"
}
}
}
}
我们有这个在我们的Pragram. cs:
var services = builder.Services;
var configuration = builder.Configuration;
services.AddApplicationInsightsTelemetry(configuration["ApplicationInsights:InstrumentationKey"]);
在我们的控制器中:
namespace MyAPI.Controllers
{
[Route("api/[controller]")]
[Authorize]
[ApiController]
public class MyController : ControllerBase
{
private readonly ILogger _logger;
public MyController(ILogger<MyController> logger)
{
_logger = logger;
}
[HttpGet]
public async Task<ActionResult> MyTask()
{
try
{
// Do things async
return Ok()
}
catch (Exception e)
{
_logger.LogError("{error}", e.Message);
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
}
}
}
}
我们可以通过什么来了解这些错误?
1条答案
按热度按时间8ulbf1ek1#
我能够从您的
appsettings.json
文件中使用相同的配置记录状态代码为500的错误。为了记录500错误,我显式地抛出了一个异常。
我的
Controller
:您可以看到500个错误被记录为
Request
。在Transaction Search
中检查相同的内容。REQUEST
条目以获取错误的详细列表。检查
Failures
中的错误计数。其中许多错误似乎是由于查询第三方数据库时SQL超时而发生的。
请参阅SOThread,它解释了如何记录SQL超时错误。
我能够用下面的代码记录SQL超时异常。