All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.dropwizard.logging.socket.DropwizardSocketAppender Maven / Gradle / Ivy

There is a newer version: 5.0.0-alpha.5
Show newest version
package io.dropwizard.logging.socket;

import ch.qos.logback.core.OutputStreamAppender;
import io.dropwizard.logging.ResilientSocketOutputStream;
import ch.qos.logback.core.spi.DeferredProcessingAware;

import javax.net.SocketFactory;
import java.io.OutputStream;

/**
 * Sends log events to a TCP server, a connection to which is represented as {@link ResilientSocketOutputStream}.
 */
public class DropwizardSocketAppender extends OutputStreamAppender {

    private final String host;
    private final int port;
    private final int connectionTimeoutMs;
    private final int sendBufferSize;
    private final SocketFactory socketFactory;

    public DropwizardSocketAppender(String host, int port, int connectionTimeoutMs, int sendBufferSize,
                                    SocketFactory socketFactory) {
        this.host = host;
        this.port = port;
        this.connectionTimeoutMs = connectionTimeoutMs;
        this.sendBufferSize = sendBufferSize;
        this.socketFactory = socketFactory;
    }

    @Override
    public void start() {
        setOutputStream(socketOutputStream());
        super.start();
    }

    protected OutputStream socketOutputStream() {
        final ResilientSocketOutputStream outputStream = new ResilientSocketOutputStream(host, port,
            connectionTimeoutMs, sendBufferSize, socketFactory);
        outputStream.setContext(context);
        return outputStream;
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy