gpt4 book ai didi

c# - 我可以禁用 EF Core 错误日志记录将重试的 transient 错误吗?

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:45 24 4
gpt4 key购买 nike

当我在 EF Core 中使用 EnableRetryOnFailure 时,我得到了每个 transient 错误的错误级别日志。绝大多数情况下,忽略这些暂时性错误是安全的,因为事务即将重试并且很可能会成功。

但是,我看不出有什么方法可以在日志中区分 a) “由于暂时性错误而重试”和 b) “所有允许的重试都失败了”的情况。理想情况下,前者将是严重性较低的 LogLevel,或者将包含在某种 SqlTransientRetryException 或其他内容中。

这对我来说是个问题,因为我不想收到提醒我注意每个 transient 异常的警报,但我也不想只筛选出任何 Microsoft.EntityFrameworkCore.Query 错误日志,因为如果错误不是暂时性的或者所有允许的重试都失败了,那么我想知道它。

最佳答案

我看了一下 Logging EF Core 文档的部分,DbLoggerCategory 的文档类,并浏览了 GitHub 上的代码,似乎没有对 transient 错误进行任何区分……就日志记录而言。

我认为您能做的最好的事情就是向团队提出问题。或许他们可以为 transient 故障引入一个类别。

总的来说(我还没有检查过)日志消息本身可能有一些不同之处。如果有,您可以想象编写一个日志记录接收器,通过查看消息的内容来过滤这些。这似乎是 hackish 并且不是很好地利用时间。

另一种可能性是禁止所有日志记录并包装您的调用;当“真正的”非暂时性异常最终冒出时,您可以记录它。

关于c# - 我可以禁用 EF Core 错误日志记录将重试的 transient 错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com