- java.lang.Object
-
- java.util.logging.Handler
-
- org.jboss.logmanager.ExtHandler
-
- org.jboss.logmanager.handlers.SocketHandler
-
- All Implemented Interfaces:
Flushable
,AutoCloseable
public class SocketHandler extends ExtHandler
A handler used to communicate over a socket.- Author:
- James R. Perkins
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SocketHandler.Protocol
The type of socket
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_PORT
-
Fields inherited from class org.jboss.logmanager.ExtHandler
handlers, handlersUpdater, lock
-
-
Constructor Summary
Constructors Constructor Description SocketHandler()
SocketHandler(String hostname, int port)
Creates a socket handler.SocketHandler(InetAddress address, int port)
Creates a socket handler.SocketHandler(SocketFactory socketFactory, SocketHandler.Protocol protocol, String hostname, int port)
Creates a socket handler.SocketHandler(SocketFactory socketFactory, SocketHandler.Protocol protocol, InetAddress address, int port)
Creates a socket handler.SocketHandler(ClientSocketFactory clientSocketFactory, SocketHandler.Protocol protocol)
Creates a socket handler.SocketHandler(SocketHandler.Protocol protocol, String hostname, int port)
Creates a socket handler.SocketHandler(SocketHandler.Protocol protocol, InetAddress address, int port)
Creates a socket handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close all child handlers.protected void
doPublish(ExtLogRecord record)
Do the actual work of publication; the record will have been filtered already.void
flush()
Flush all child handlers.InetAddress
getAddress()
Returns the address being used.int
getPort()
Returns the port being used.SocketHandler.Protocol
getProtocol()
Returns the protocol being used.boolean
isBlockOnReconnect()
Indicates whether or not the output stream is set to block when attempting to reconnect a TCP connection.void
setAddress(InetAddress address)
Sets the address to connect to.void
setBlockOnReconnect(boolean blockOnReconnect)
void
setClientSocketFactory(ClientSocketFactory clientSocketFactory)
Sets the client socket factory used to create sockets.void
setHostname(String hostname)
Sets the address to connect to by doing a lookup on the hostname.void
setPort(int port)
Sets the port to connect to.void
setProtocol(SocketHandler.Protocol protocol)
Sets the protocol to use.void
setSocketFactory(SocketFactory socketFactory)
-
Methods inherited from class org.jboss.logmanager.ExtHandler
addHandler, checkAccess, checkAccess, clearHandlers, getCharset, getEncoding, getErrorManager, getFilter, getFormatter, getHandlers, getLevel, isAutoFlush, isCallerCalculationRequired, isCloseChildren, isEnabled, publish, publish, publishToNestedHandlers, removeHandler, reportError, reportError, setAutoFlush, setCharset, setCharsetPrivate, setCloseChildren, setEnabled, setEncoding, setErrorManager, setFilter, setFormatter, setHandlers, setLevel
-
Methods inherited from class java.util.logging.Handler
isLoggable
-
-
-
-
Field Detail
-
DEFAULT_PORT
public static final int DEFAULT_PORT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SocketHandler
public SocketHandler() throws UnknownHostException
- Throws:
UnknownHostException
- if an error occurs attempting to retrieve the localhost
-
SocketHandler
public SocketHandler(String hostname, int port) throws UnknownHostException
Creates a socket handler.- Parameters:
hostname
- the hostname to connect toport
- the port to connect to- Throws:
UnknownHostException
- if an error occurs resolving the address
-
SocketHandler
public SocketHandler(InetAddress address, int port)
Creates a socket handler.- Parameters:
address
- the address to connect toport
- the port to connect to
-
SocketHandler
public SocketHandler(SocketHandler.Protocol protocol, String hostname, int port) throws UnknownHostException
Creates a socket handler.- Parameters:
protocol
- the protocol to connect withhostname
- the hostname to connect toport
- the port to connect to- Throws:
UnknownHostException
- if an error occurs resolving the hostname
-
SocketHandler
public SocketHandler(SocketHandler.Protocol protocol, InetAddress address, int port)
Creates a socket handler.- Parameters:
protocol
- the protocol to connect withaddress
- the address to connect toport
- the port to connect to
-
SocketHandler
public SocketHandler(SocketFactory socketFactory, SocketHandler.Protocol protocol, String hostname, int port) throws UnknownHostException
Creates a socket handler.- Parameters:
socketFactory
- the socket factory to use for creating TCP or SSL TCP connections, ifnull
a default factory will be usedprotocol
- the protocol to connect withhostname
- the hostname to connect toport
- the port to connect to- Throws:
UnknownHostException
- if an error occurs resolving the hostname- See Also:
SocketHandler(ClientSocketFactory, Protocol)
-
SocketHandler
public SocketHandler(SocketFactory socketFactory, SocketHandler.Protocol protocol, InetAddress address, int port)
Creates a socket handler.- Parameters:
socketFactory
- the socket factory to use for creating TCP or SSL TCP connections, ifnull
a default factory will be usedprotocol
- the protocol to connect withaddress
- the address to connect toport
- the port to connect to- See Also:
SocketHandler(ClientSocketFactory, Protocol)
-
SocketHandler
public SocketHandler(ClientSocketFactory clientSocketFactory, SocketHandler.Protocol protocol)
Creates a socket handler.- Parameters:
clientSocketFactory
- the client socket factory used to create socketsprotocol
- the protocol to connect with
-
-
Method Detail
-
doPublish
protected void doPublish(ExtLogRecord record)
Description copied from class:ExtHandler
Do the actual work of publication; the record will have been filtered already. The default implementation does nothing except to flush if theautoFlush
property is set totrue
; if this behavior is to be preserved in a subclass then this method should be called after the record is physically written.- Overrides:
doPublish
in classExtHandler
- Parameters:
record
- the log record to publish
-
flush
public void flush()
Description copied from class:ExtHandler
Flush all child handlers.- Specified by:
flush
in interfaceFlushable
- Overrides:
flush
in classExtHandler
-
close
public void close() throws SecurityException
Description copied from class:ExtHandler
Close all child handlers.- Specified by:
close
in interfaceAutoCloseable
- Overrides:
close
in classExtHandler
- Throws:
SecurityException
-
getAddress
public InetAddress getAddress()
Returns the address being used.- Returns:
- the address
-
setAddress
public void setAddress(InetAddress address)
Sets the address to connect to.Note that is resets the client socket factory.
- Parameters:
address
- the address
-
setHostname
public void setHostname(String hostname) throws UnknownHostException
Sets the address to connect to by doing a lookup on the hostname.Note that is resets the client socket factory.
- Parameters:
hostname
- the host name used to resolve the address- Throws:
UnknownHostException
- if an error occurs resolving the address
-
isBlockOnReconnect
public boolean isBlockOnReconnect()
Indicates whether or not the output stream is set to block when attempting to reconnect a TCP connection.- Returns:
true
if blocking is enabled, otherwisefalse
-
setBlockOnReconnect
public void setBlockOnReconnect(boolean blockOnReconnect)
Enables or disables blocking when attempting to reconnect the socket when using a TCP or SSL TCP connections. If set totrue
thewrite
methods will block when attempting to reconnect. This is only advisable to be set totrue
if using an asynchronous handler.- Parameters:
blockOnReconnect
-true
to block when reconnecting orfalse
to reconnect asynchronously discarding any new messages coming in
-
getProtocol
public SocketHandler.Protocol getProtocol()
Returns the protocol being used.- Returns:
- the protocol
-
setProtocol
public void setProtocol(SocketHandler.Protocol protocol)
Sets the protocol to use. If the value isnull
the protocol will be set to TCP.Note that is resets the socket factory if it was previously set.
- Parameters:
protocol
- the protocol to use
-
getPort
public int getPort()
Returns the port being used.- Returns:
- the port
-
setPort
public void setPort(int port)
Sets the port to connect to.Note that is resets the client socket factory.
- Parameters:
port
- the port
-
setSocketFactory
public void setSocketFactory(SocketFactory socketFactory)
Sets the socket factory to use for creating TCP or SSL connections.Note that if the protocol is set the socket factory will be set to
null
and reset. Setting a value here also resets the client socket factory.- Parameters:
socketFactory
- the socket factory- See Also:
setClientSocketFactory(ClientSocketFactory)
-
setClientSocketFactory
public void setClientSocketFactory(ClientSocketFactory clientSocketFactory)
Sets the client socket factory used to create sockets. Ifnull
the address and port are required to be set.- Parameters:
clientSocketFactory
- the client socket factory to use
-
-