Advertisement
Guest User

Untitled

a guest
May 22nd, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. import ch.qos.logback.classic.LoggerContext;
  2. import ch.qos.logback.classic.spi.ILoggingEvent;
  3. import ch.qos.logback.core.Appender;
  4. import ch.qos.logback.core.FileAppender;
  5. import ch.qos.logback.core.Layout;
  6. import com.fasterxml.jackson.annotation.JsonTypeName;
  7. import io.dropwizard.logging.FileAppenderFactory;
  8. import net.logstash.logback.encoder.LogstashEncoder;
  9.  
  10.  
  11. @JsonTypeName("logstashfile")
  12. public class LogstashAppender extends FileAppenderFactory
  13. {
  14. @Override
  15. public Appender<ILoggingEvent> build (final LoggerContext context, final String applicationName, final Layout<ILoggingEvent> layout)
  16. {
  17. final FileAppender<ILoggingEvent> appender = buildAppender( context );
  18. appender.setName( "logstashfile-appender" );
  19. appender.setPrudent( false );
  20. appender.setAppend( true );
  21. appender.setContext( context );
  22.  
  23. final LogstashEncoder logstashEncoder = new LogstashEncoder();
  24. logstashEncoder.setIncludeCallerInfo( true );
  25. logstashEncoder.setIncludeMdc( true );
  26. logstashEncoder.setTimeZone( super.getTimeZone().getID() );
  27. logstashEncoder.setContext( context );
  28. logstashEncoder.setIncludeContext( true );
  29. logstashEncoder.setImmediateFlush( true );
  30. logstashEncoder.start();
  31. appender.setEncoder( logstashEncoder );
  32.  
  33. appender.setFile( super.getCurrentLogFilename() );
  34. appender.setPrudent(false);
  35. addThresholdFilter(appender, threshold);
  36. appender.stop();
  37. appender.start();
  38.  
  39. return wrapAsync( appender );
  40. }
  41.  
  42. @Override
  43. protected FileAppender<ILoggingEvent> buildAppender (final LoggerContext context)
  44. {
  45. return super.buildAppender( context );
  46. }
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement