ElasticSearch记录器,错误时记录整个源



我正试图从ElasticSearch的MapperParsingException记录器中获取额外信息。

错误消息看起来像

[logs-X][1]无法执行批量项目(索引(索引{[logs-X][logs][X],源[n/a,实际长度:[2.9kb],最大长度:2kb]}

它显示source[n/a..

有没有办法打印实际来源?

这是不可能的,至少通过配置

有一个常数值集:https://github.com/elastic/elasticsearch/blob/master/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java#L87

static final int MAX_SOURCE_LENGTH_IN_TOSTRING = 2048;

而且已经检查过了https://github.com/elastic/elasticsearch/blob/master/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java#L673

@Override
public String toString() {
String sSource = "_na_";
try {
if (source.length() > MAX_SOURCE_LENGTH_IN_TOSTRING) {
sSource = "n/a, actual length: [" + new ByteSizeValue(source.length()).toString() + "], max length: " +
new ByteSizeValue(MAX_SOURCE_LENGTH_IN_TOSTRING).toString();
} else {
sSource = XContentHelper.convertToJson(source, false);
}
} catch (Exception e) {
// ignore
}
return "index {[" + index + "][" + id + "], source[" + sSource + "]}";
}

最新更新