Github user mikaelstaldal commented on a diff in the pull request:
https://github.com/apache/logging-log4j2/pull/112#discussion_r142994778
--- Diff:
log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
---
@@ -47,18 +47,24 @@
private final int timeoutMillis;
private final String topic;
+ private final byte[] key;
private final boolean syncSend;
- public KafkaManager(final LoggerContext loggerContext, final String
name, final String topic, final boolean syncSend, final Property[] properties) {
+ public KafkaManager(final LoggerContext loggerContext, final String
name, final String topic, final boolean syncSend,
+ final Property[] properties, final String key) {
super(loggerContext, name);
this.topic = Objects.requireNonNull(topic, "topic");
this.syncSend = syncSend;
config.setProperty("key.serializer",
"org.apache.kafka.common.serialization.ByteArraySerializer");
config.setProperty("value.serializer",
"org.apache.kafka.common.serialization.ByteArraySerializer");
config.setProperty("batch.size", "0");
for (final Property property : properties) {
+
config.setProperty(property.getName(), property.getValue());
}
+
+ this.key = (key != null ) ? key.getBytes() : null ;
--- End diff --
`key.getBytes()` will use some platform default charset. It's not good to
rely on that, better to specify charset explicitly.
---