HDFSAppender.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.yihu.base.hdfs;
  2. import ch.qos.logback.classic.spi.LoggingEvent;
  3. import ch.qos.logback.core.AppenderBase;
  4. import com.yihu.base.hdfs.buffer.HDFSBufferConsumer;
  5. import com.yihu.base.hdfs.buffer.HDFSEventBuffer;
  6. import com.yihu.base.hdfs.properties.HDFSAppenderProperties;
  7. /**
  8. * Created by chenweida on 2018/2/26.
  9. */
  10. public class HDFSAppender extends AppenderBase<LoggingEvent> {
  11. private HDFSAppenderProperties hdfsAppenderProperties = new HDFSAppenderProperties();
  12. private HDFSEventBuffer eventBuffer;
  13. //消费者
  14. private Thread bufferConsumerThread = null;
  15. @Override
  16. public void start() {
  17. super.start();
  18. //初始化内存缓冲队列
  19. eventBuffer = new HDFSEventBuffer(hdfsAppenderProperties.getBufferProperties());
  20. //启动消费者
  21. HDFSBufferConsumer bufferConsumer = new HDFSBufferConsumer(eventBuffer, hdfsAppenderProperties);
  22. bufferConsumerThread = new Thread(bufferConsumer);
  23. bufferConsumerThread.start();
  24. }
  25. @Override
  26. protected void append(LoggingEvent eventObject) {
  27. }
  28. //========================================properties========================================
  29. //==============hdfs start==============
  30. public void setHosts(String hosts) {
  31. hdfsAppenderProperties.getHdfsProperties().setHosts(hosts);
  32. }
  33. public void setPath(String path) {
  34. hdfsAppenderProperties.getHdfsProperties().setPath(path);
  35. }
  36. public void setFileName(String fileName) {
  37. hdfsAppenderProperties.getHdfsProperties().setFileName(fileName);
  38. }
  39. public void setRolling(String rolling) {
  40. hdfsAppenderProperties.getHdfsProperties().setRolling(rolling);
  41. }
  42. public void setSuffix(String suffix) {
  43. hdfsAppenderProperties.getHdfsProperties().setSuffix(suffix);
  44. }
  45. //==============hdfs end==============
  46. //==============buffer start==============
  47. public void setSleepTime(Long sleepTime) {
  48. hdfsAppenderProperties.getBufferProperties().setSleepTime(sleepTime);
  49. }
  50. public void setBufferSize(Integer bufferSize) {
  51. hdfsAppenderProperties.getBufferProperties().setBufferSize(bufferSize);
  52. }
  53. //==============buffer end==============
  54. }