在C#中记录错误时,能否获取已创建的Rollbar条目?
在C#中获取Rollbar错误条目并生成链接的方法
你当前调用的RollbarLocator.RollbarInstance.Error(ex)默认是异步无返回的日志发送方式,要获取已创建的Rollbar条目信息,得用Rollbar SDK提供的带响应返回的重载方法,具体操作如下:
1. 使用异步方法获取条目信息
Rollbar的ErrorAsync方法会返回Task<RollbarResponse>对象,等待该任务完成后就能拿到条目的唯一标识(Uuid),进而拼接出Rollbar条目链接:
try { // 你的业务逻辑代码 } catch (Exception ex) { var rollbarResponse = await RollbarLocator.RollbarInstance.ErrorAsync(ex); if (rollbarResponse.Success) { // 获取Rollbar条目的唯一UUID string itemUuid = rollbarResponse.Result.Uuid; // 拼接成Rollbar条目链接(替换成你的组织和项目名) string rollbarItemLink = $"https://rollbar.com/你的组织名/你的项目名/items/?item_uuid={itemUuid}"; // 把这个链接添加到开发环境的错误返回中即可 } }
2. 同步场景下的处理
如果你的代码不适合用异步,可以将Rollbar实例转为阻塞型日志器,等待日志发送完成后获取响应:
try { // 你的业务逻辑代码 } catch (Exception ex) { // 设置3秒超时,等待日志发送完成 var blockingLogger = RollbarLocator.RollbarInstance.AsBlockingLogger(TimeSpan.FromSeconds(3)); var rollbarResponse = blockingLogger.Error(ex); if (rollbarResponse.Success) { string itemUuid = rollbarResponse.Result.Uuid; string rollbarItemLink = $"https://rollbar.com/你的组织名/你的项目名/items/?item_uuid={itemUuid}"; // 后续使用链接的逻辑 } }
注意事项
- 确保使用的是最新版本的Rollbar .NET SDK,旧版本可能不支持获取响应中的条目UUID
- 只在开发环境启用该功能,避免生产环境暴露Rollbar条目链接
- 链接格式中的组织名和项目名,要替换成你在Rollbar平台上的实际信息
内容的提问来源于stack exchange,提问作者Mateo F
相关产品推荐
相关产品推荐

