Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ch.qos.logback.classic.LoggerContext;
- import ch.qos.logback.classic.spi.ILoggingEvent;
- import ch.qos.logback.core.Appender;
- import ch.qos.logback.core.FileAppender;
- import ch.qos.logback.core.Layout;
- import com.fasterxml.jackson.annotation.JsonTypeName;
- import io.dropwizard.logging.FileAppenderFactory;
- import net.logstash.logback.encoder.LogstashEncoder;
- @JsonTypeName("logstashfile")
- public class LogstashAppender extends FileAppenderFactory
- {
- @Override
- public Appender<ILoggingEvent> build (final LoggerContext context, final String applicationName, final Layout<ILoggingEvent> layout)
- {
- final FileAppender<ILoggingEvent> appender = buildAppender( context );
- appender.setName( "logstashfile-appender" );
- appender.setPrudent( false );
- appender.setAppend( true );
- appender.setContext( context );
- final LogstashEncoder logstashEncoder = new LogstashEncoder();
- logstashEncoder.setIncludeCallerInfo( true );
- logstashEncoder.setIncludeMdc( true );
- logstashEncoder.setTimeZone( super.getTimeZone().getID() );
- logstashEncoder.setContext( context );
- logstashEncoder.setIncludeContext( true );
- logstashEncoder.setImmediateFlush( true );
- logstashEncoder.start();
- appender.setEncoder( logstashEncoder );
- appender.setFile( super.getCurrentLogFilename() );
- appender.setPrudent(false);
- addThresholdFilter(appender, threshold);
- appender.stop();
- appender.start();
- return wrapAsync( appender );
- }
- @Override
- protected FileAppender<ILoggingEvent> buildAppender (final LoggerContext context)
- {
- return super.buildAppender( context );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement