package com.jthink.skyeye.client.kafka.logback.encoder; import ch.qos.logback.core.Layout; import ch.qos.logback.core.spi.ContextAwareBase; import ch.qos.logback.core.spi.LifeCycle; import java.nio.charset.Charset; /** * JThink@JThink * * @author JThink * @version 0.0.1 * @desc kafka的encoder * @date 2016-09-09 16:51:18 */ public class KafkaLayoutEncoder<E> extends ContextAwareBase implements LifeCycle { // layout private Layout<E> layout; // 编码,默认utf-8 private Charset charset; private boolean started = false; private static final Charset UTF8 = Charset.forName("UTF-8"); public String doEncode(E event) { return this.layout.doLayout(event); } @Override public void start() { if (charset == null) { addInfo("no set charset, set the default charset is utf-8"); charset = UTF8; } started = true; } @Override public void stop() { started = false; } @Override public boolean isStarted() { return started; } public Layout<E> getLayout() { return layout; } public void setLayout(Layout<E> layout) { this.layout = layout; } public Charset getCharset() { return charset; } public void setCharset(Charset charset) { this.charset = charset; } }