Можно ли отключить ведение журнала ошибок EF Core для временных ошибок, которые будут повторяться? - PullRequest
2 голосов
/ 05 апреля 2019

Когда я использую EnableRetryOnFailure в EF Core, я получаю журналы уровня ошибок по каждой временной ошибке. В большинстве случаев эти временные ошибки безопасно игнорировать, поскольку транзакция будет повторена и, вероятно, будет успешной.

Однако я не вижу никакого способа разграничить в журналах ситуацию: а) «повторная попытка из-за временной ошибки» и б) «все допустимые повторные попытки завершились неудачно». В идеале, первый должен быть LogLevel с более низким уровнем серьезности или обернут в какой-то SqlTransientRetryException или что-то еще.

Это проблема для меня, поскольку я не хочу получать оповещения, обращающие мое внимание на каждое временное исключение, но я также не хочу просто отсеивать какой-либо Microsoft.EntityFrameworkCore.Query журнал ошибок, потому что, если ошибка не Временные или все допустимые повторные попытки не выполнены, я хочу знать об этом.

1 Ответ

0 голосов
/ 06 апреля 2019

Я взглянул на раздел Ведение журнала документов EF Core, документацию для класса DbLoggerCategory и просмотрел код на GitHub, и это не похоже наесть какое-то различие для временных ошибок ... что касается ведения журналов.

Я думаю, что лучшее, что вы можете сделать, это поднять проблему для команды по этому поводу.Возможно, они могут ввести категорию для временных сбоев.

В качестве растяжки (и я не проверял), возможно, есть что-то особенное в самих сообщениях регистрации.Если есть, вы могли бы написать приемник журналирования, который фильтрует их, просматривая содержимое сообщения.Это кажется хакерским и нецелесообразным использованием времени.

Другая возможность состоит в том, чтобы подавить все записи и обернуть ваши звонки;когда «реальное» непереходное исключение наконец всплывает, вы можете записать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...