Class TcpSocketManager

    • Field Detail

      • DEFAULT_RECONNECTION_DELAY_MILLIS

        public static final int DEFAULT_RECONNECTION_DELAY_MILLIS
        The default reconnection delay (30000 milliseconds or 30 seconds).
        See Also:
        Constant Field Values
    • Constructor Detail

      • TcpSocketManager

        public TcpSocketManager​(String name,
                                OutputStream os,
                                Socket socket,
                                InetAddress inetAddress,
                                String host,
                                int port,
                                int connectTimeoutMillis,
                                int reconnectionDelayMillis,
                                boolean immediateFail,
                                Layout<? extends Serializable> layout,
                                int bufferSize,
                                SocketOptions socketOptions)
        Constructs.
        Parameters:
        name - The unique name of this connection.
        os - The OutputStream.
        socket - The Socket.
        inetAddress - The Internet address of the host.
        host - The name of the host.
        port - The port number on the host.
        connectTimeoutMillis - the connect timeout in milliseconds.
        reconnectionDelayMillis - Reconnection interval.
        immediateFail - True if the write should fail if no socket is immediately available.
        layout - The Layout.
        bufferSize - The buffer size.
    • Method Detail

      • getSocketManager

        public static TcpSocketManager getSocketManager​(String host,
                                                        int port,
                                                        int connectTimeoutMillis,
                                                        int reconnectDelayMillis,
                                                        boolean immediateFail,
                                                        Layout<? extends Serializable> layout,
                                                        int bufferSize,
                                                        SocketOptions socketOptions)
        Obtains a TcpSocketManager.
        Parameters:
        host - The host to connect to.
        port - The port on the host.
        connectTimeoutMillis - the connect timeout in milliseconds
        reconnectDelayMillis - The interval to pause between retries.
        bufferSize - The buffer size.
        Returns:
        A TcpSocketManager.
      • write

        protected void write​(byte[] bytes,
                             int offset,
                             int length,
                             boolean immediateFlush)
        Description copied from class: OutputStreamManager
        Some output streams synchronize writes while others do not. Synchronizing here insures that log events won't be intertwined.
        Overrides:
        write in class OutputStreamManager
        Parameters:
        bytes - The serialized Log event.
        offset - The offset into the byte array.
        length - The number of bytes to write.
        immediateFlush - flushes immediately after writing.
      • getConnectTimeoutMillis

        public int getConnectTimeoutMillis()
      • getContentFormat

        public Map<String,​String> getContentFormat()
        Gets this TcpSocketManager's content format. Specified by:
        • Key: "protocol" Value: "tcp"
        • Key: "direction" Value: "out"
        Overrides:
        getContentFormat in class AbstractSocketManager
        Returns:
        Map of content format keys supporting TcpSocketManager
      • setHostResolver

        public static void setHostResolver​(TcpSocketManager.HostResolver resolver)
        This method is only for unit testing. It is not Thread-safe.
        Parameters:
        resolver - the HostResolver.
      • getSocketOptions

        public SocketOptions getSocketOptions()
        USE AT YOUR OWN RISK, method is public for testing purpose only for now.
      • getSocket

        public Socket getSocket()
        USE AT YOUR OWN RISK, method is public for testing purpose only for now.
      • getReconnectionDelayMillis

        public int getReconnectionDelayMillis()