Операции регистрации запекания блока Catch - PullRequest
0 голосов
/ 15 февраля 2020

Я работаю с приложением .Core 3.1, в котором будут обычные блоки try / catch - все они сформированы примерно так:

Logger.LogWarning(ex, "Failed to load product {ProductId}", 

Будет много таких блоков - - регистрация улова будет практически одинаковой для всех из них: строковое сообщение, которое будет уникальным для каждого блока плюс сообщение об исключении.

Так что, если каждый блок улова вызывает регистратор, почему явный вызов требуется? Какова точка расширения для «запечатывания» вызова регистратора и передачи сообщения журнала, которое должно быть установлено соглашением.

Итак, рассмотрим этот кодовый блок:

protected override async Task OnParametersSetAsync()
{
    var _logMessage = "OPSA calls GetProductByIdAsync with: " + ProductId;
    try
    {
        _loadFailed = false;
        _details = await GetProductByIdAsync(ProductId);
    }
    catch (Exception ex)
    {
        _loadFailed = true;
        //app should implicitly call:
        // Logger.LogWarning(ex, _logMessage);
        // 
       // Shouldn't I expect to find a special something somewhere
       // to override the default behavior and inject that logger call?
    }

спасибо}

...