You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在使用Polly V8 ResiliencePipelineBuilder时屏蔽Execution Attempt日志?

屏蔽Polly V8重试策略的"Execution attempt"冗余日志

可以屏蔽这条冗余日志,以下是两种实用方案:

方案一:通过Serilog过滤规则屏蔽

直接在Serilog配置中添加过滤规则,匹配目标日志的特征(消息内容、来源标识),将其排除:

代码方式配置Serilog过滤

Log.Logger = new LoggerConfiguration()
    .Filter.ByExcluding(evt => 
        evt.MessageTemplate.Text.Contains("Execution attempt") && 
        evt.Properties.TryGetValue("Source", out var source) && 
        source.ToString().Contains("screenshot-stream-with-retries"))
    // 保留你的其他Serilog配置(如WriteTo、Enrich等)
    .CreateLogger();

配置文件方式(appsettings.json)

"Serilog": {
  "Filter": [
    {
      "Name": "ByExcluding",
      "Args": {
        "expression": "MessageTemplate like '%Execution attempt%' and Source like '%screenshot-stream-with-retries%'"
      }
    }
  ],
  // 其他Serilog配置项
}

方案二:修改Polly重试策略的遥测配置

这条日志来自Polly V8重试策略的遥测模块,你可以直接在重试策略选项中禁用该事件的日志输出:

public ResiliencePipelineBuilder<Stream> Configure(ResiliencePipelineBuilder<Stream> pipelineBuilder)
{
    return pipelineBuilder.AddRetry(new RetryStrategyOptions<Stream>
    {
        MaxRetryAttempts = 3,
        Delay = TimeSpan.FromSeconds(2),
        BackoffType = DelayBackoffType.Exponential,
        ShouldHandle = new PredicateBuilder<Stream>().Handle<Exception>(),
        OnRetry = retryArguments =>
        {               
            _logger.LogWarning($"Screenshot failed with exception {retryArguments.Outcome.Exception.Message}. " +
                         $"Waiting {retryArguments.Duration} before next retry. Retry attempt {retryArguments.AttemptNumber}");
            return ValueTask.CompletedTask;
        },
        // 配置遥测,将重试Attempt事件的日志级别设为None
        Telemetry = new RetryStrategyTelemetryOptions
        {
            LogLevel = new Dictionary<RetryEvent, LogLevel>
            {
                { RetryEvent.Attempt, LogLevel.None }
            }
        }
    });
}

如果需要全局禁用所有重试策略的Attempt日志,也可以在管道构建时配置全局遥测:

pipelineBuilder.ConfigureTelemetry(options =>
{
    options.Logging.LogLevelMap.TryAdd("Retry.Attempt", LogLevel.None);
});

内容的提问来源于stack exchange,提问作者Raúl Portela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:51:10