之前使用logstash采集log4j日志,使用logstash-tcp-input插件,log4j使用SocketAppender;
发现log4j的socket竟然不支持layout,所以logstash收到的消息就只有%m里的东西,,,什么时间啊,线程啊这些统统收不到;
所以,我要重写appender来发送socket消息
log4j自带的socketAppender是org.apache.log4j.net.SocketAppender,
继承关系如下
java.lang.Object
org.apache.log4j.AppenderSkeleon
org.apache.log4j.net.SocketAppender
因此自定义appender继承自AppenderSkeleon(原本打算继承SocketAppender,研究后发现,这样没办法实现我的需求)
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Layout;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.spi.LoggingEvent;
import java.io.*;