下面列出了怎么用org.apache.logging.log4j.core.layout.SerializedLayout的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void append(final LogEvent event) {
try {
final Layout<? extends Serializable> layout = getLayout();
byte[] data;
if (layout != null) {
if (layout instanceof SerializedLayout) {
final byte[] header = layout.getHeader();
final byte[] body = layout.toByteArray(event);
data = new byte[header.length + body.length];
System.arraycopy(header, 0, data, 0, header.length);
System.arraycopy(body, 0, data, header.length, body.length);
} else {
data = layout.toByteArray(event);
}
} else {
data = StringEncoder.toBytes(event.getMessage().getFormattedMessage(), StandardCharsets.UTF_8);
}
manager.send(topic, data);
} catch (final Exception e) {
LOGGER.error("Unable to write to Kafka [{}] for appender [{}].", manager.getName(), getName(), e);
throw new AppenderLoggingException("Unable to write to Kafka in appender: " + e.getMessage(), e);
}
}
private void tryAppend(final LogEvent event) {
final Layout<? extends Serializable> layout = getLayout();
byte[] data;
if (layout instanceof SerializedLayout) {
final byte[] header = layout.getHeader();
final byte[] body = layout.toByteArray(event);
data = new byte[header.length + body.length];
System.arraycopy(header, 0, data, 0, header.length);
System.arraycopy(body, 0, data, header.length, body.length);
} else {
data = layout.toByteArray(event);
}
manager.send(data);
}
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}