我在 .Net 核心 EF 应用程序中使用 EnableRetryOnFailure 并根据https://www.npgsql.org/efcore/misc/other.html添加了逻辑。我希望能够判断这些事件何时/是否发生,以确认它正在工作,而不仅仅是没有任何瞬时连接错误。
在此先感谢您的任何指点。鲁文
我在 .Net 核心 EF 应用程序中使用 EnableRetryOnFailure 并根据https://www.npgsql.org/efcore/misc/other.html添加了逻辑。我希望能够判断这些事件何时/是否发生,以确认它正在工作,而不仅仅是没有任何瞬时连接错误。
在此先感谢您的任何指点。鲁文
可以通过上下文类中的覆盖来启用日志记录。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.LogTo(
filter: (eventId, level) => eventId.Id == CoreEventId.ExecutionStrategyRetrying,
logger: (eventData) =>
{
var retryEventData = eventData as ExecutionStrategyEventData;
var exceptions = retryEventData.ExceptionsEncountered;
Console.WriteLine($"Retry #{exceptions.Count} with delay {retryEventData.Delay} due to error: {exceptions.Last().Message}");
});
}