我试图将web服务输入/输出作为xml插入到Graylog中。为此,我使用了“用于Log4j的GELFJ和用于JDK日志记录的GELFJ”。下面是示例代码:
public static void main(String[] args) throws IOException {
GelfSender gelfSender = new GelfTCPSender("172.21.120.139", 12201);
String xmlMessage = readFile("c:\\temp\\xml.xml");
GelfMessage message = new GelfMessage("short message", "long message", System.currentTimeMillis(), "1");
message.setHost("localhost");
message.addField("XML", xmlMessage);
message.addField("LEN", xmlMessage.length());
if (message.isValid()) {
GelfSenderResult result = gelfSender.sendMessage(message);
Exception exception = result.getException();
if (exception != null) {
exception.printStackTrace();
}
} else {
System.err.println("Message is not valid!");
}
}这是GELF输入属性。

我不能插入大于20k (字符)的消息字段。以及大于1.6MB的消息总数。
我的问题是,消息字段和消息总大小(以字节为单位)的限制是什么?
发布于 2016-06-03 12:09:10
Graylog和GELF协议本身没有任何大小限制,但是应该注意,对于分析字段(例如,GELF消息的"message“和"full_message”字段),Lucene (作为Elasticsearch的基础库)的每个字段的限制为32 full_message。
假设Elasticsearch和Graylog中的默认编码是UTF-8,这20.000个字符可以近似匹配32 KiB的最大字段大小(用于分析字段)。未经分析的字段可以(几乎)任意大。
有关GitHub的相关问题,请参见GitHub。
https://stackoverflow.com/questions/37613042
复制相似问题