c# - 意外记录
问题描述
我有一个 ASP.NET Core API。我正在使用标准的 .NET Core 日志记录Microsoft.Extensions.Logging.ILogger
我看到我没有记录的日志条目。一些日志条目显示了进入 API 的 JSON 有效负载,这很好,但我没有在我的代码中的任何地方记录它。
真正困扰我的是,即使没有人调用它,它也似乎不断地击中我的一个控制器,它甚至不是一个有效的端点,它只是基本控制器。
[INF] Request starting HTTP/1.1 GET http://***.***.***.***/api/webhook (ca22a1cb)
[INF] Request finished in 0.1028ms 404 (791a596a)
“webhook”是一个控制器,但请求似乎不在控制器上的任何特定端点上。它似乎在复制上述 2 条日志语句。它与上面的块相同(请求开始和请求完成)并且总是每分钟 4 次(总共 8 次)。它们也总是在一分钟内同时出现。一组在 15 秒后,一组在 3 秒后在 18 秒后,一组在 45 秒后,最后一组在 3 秒后在 48 秒后。
解决方案
在与同事合作时,我们想通了。它托管在 AWS 上,并且 AWS 配置为每 30 秒对 /api/webhook 端点(甚至不是有效的端点)进行一次健康检查,因为它失败了,它在 3 秒后再次尝试。更改运行状况检查间隔和更改端点会导致日志记录发生更改。
我一定是弄错了它显示在本地日志中。
我仍然不知道为什么 ASP.NET Core 项目首先会创建此类日志,因为我的代码没有任何日志条目,但至少现在我知道请求来自何处。
推荐阅读
- sql - 获取 SQL 中基于标志的 ID 的唯一元素的差异
- jquery - 检查输入文本字段是否具有特定的数值并使用 jquery 更改选择的选定选项
- c - 有人可以解释一下这个声明中发生了什么吗?
- sql - 一列的 SQL AVG 值,其中另一列等于特定值
- unity3d - 如何在 Unity2D 中制作“3D 外观”面板?
- java - 在 Java 中使用 XGBoost
- javascript - 如何从下拉列表中获取选定的选项并与输入字段相乘
- amazon-s3 - 在 AWS EMR 上使用 pyspark
- hive - 查找带有撇号的单词
- python-3.x - 如何修改另一个字典中的字典值