Tod*_*ier 6 elasticsearch nest elasticsearch.net
我正在使用 Elasticsearch.NET 在 .NET 环境中使用 Elasticsearch 进行一些自定义错误处理/日志记录。给定一个IResponse对象,我试图找到最佳策略来提取简短、简洁且有用的“根本原因”消息。我最初是这样做的,当我们遇到索引错误时,它非常有效:
shortMsg = response.ServerError?.Error?.RootCause?.FirstOrDefault()?.Reason;
Run Code Online (Sandbox Code Playgroud)
但我最近遇到了一个查询时错误,上面给了我这个:
"failed to create query: { ... }"
Run Code Online (Sandbox Code Playgroud)
(省略了详细信息,但它有效地转储了整个查询。)
由于这不是特别有用,因此我花了一点时间浏览response以查看还有什么可用的。response.ServerError.Error.Reason,例如,返回"all shards failed"- 也不是特别有用。response.DebugInformation比我想要的这个特定目的要大得多,但我确实在大海捞针中找到了我正在寻找的目标:
"Can't parse boolean value [True], expected [true] or [false]"
Run Code Online (Sandbox Code Playgroud)
这是完美的,为了避免解析它,DebugInfomation我还设法在这里找到它:
"failed to create query: { ... }"
Run Code Online (Sandbox Code Playgroud)
所以现在我已经制定了这个策略来获得我的shortMsg:
"Can't parse boolean value [True], expected [true] or [false]"
Run Code Online (Sandbox Code Playgroud)
我对此的担忧是,假设如果第一个路径上存在某些东西,它总是比第二个路径“更好”,这可能是天真的。更好地理解响应结构本身可能是制定最佳策略的关键。
有什么改进的建议吗?
| 归档时间: |
|
| 查看次数: |
806 次 |
| 最近记录: |