Package org.jboss.logmanager.handlers
Class SocketHandler
- java.lang.Object
-
- java.util.logging.Handler
-
- org.jboss.logmanager.ExtHandler
-
- org.jboss.logmanager.handlers.SocketHandler
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable,FlushableCloseable,Protectable
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 classSocketHandler.ProtocolThe type of socket
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_PORT-
Fields inherited from class org.jboss.logmanager.ExtHandler
handlers, handlersUpdater
-
-
Constructor Summary
Constructors Constructor Description SocketHandler()Creates a socket handler with an address of localhost and port of 4560.SocketHandler(java.lang.String hostname, int port)Creates a socket handler.SocketHandler(java.net.InetAddress address, int port)Creates a socket handler.SocketHandler(javax.net.SocketFactory socketFactory, SocketHandler.Protocol protocol, java.lang.String hostname, int port)Creates a socket handler.SocketHandler(javax.net.SocketFactory socketFactory, SocketHandler.Protocol protocol, java.net.InetAddress address, int port)Creates a socket handler.SocketHandler(ClientSocketFactory clientSocketFactory, SocketHandler.Protocol protocol)Creates a socket handler.SocketHandler(SocketHandler.Protocol protocol, java.lang.String hostname, int port)Creates a socket handler.SocketHandler(SocketHandler.Protocol protocol, java.net.InetAddress address, int port)Creates a socket handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close all child handlers.protected voiddoPublish(ExtLogRecord record)Do the actual work of publication; the record will have been filtered already.voidflush()Flush all child handlers.java.net.InetAddressgetAddress()Returns the address being used.intgetPort()Returns the port being used.SocketHandler.ProtocolgetProtocol()Returns the protocol being used.booleanisBlockOnReconnect()Indicates whether or not the output stream is set to block when attempting to reconnect a TCP connection.voidsetAddress(java.net.InetAddress address)Sets the address to connect to.voidsetBlockOnReconnect(boolean blockOnReconnect)voidsetClientSocketFactory(ClientSocketFactory clientSocketFactory)Sets the client socket factory used to create sockets.voidsetHostname(java.lang.String hostname)Sets the address to connect to by doing a lookup on the hostname.voidsetPort(int port)Sets the port to connect to.voidsetProtocol(SocketHandler.Protocol protocol)Sets the protocol to use.voidsetSocketFactory(javax.net.SocketFactory socketFactory)-
Methods inherited from class org.jboss.logmanager.ExtHandler
addHandler, checkAccess, checkAccess, clearHandlers, disableAccess, enableAccess, getHandlers, isAutoFlush, isCallerCalculationRequired, isCloseChildren, isEnabled, protect, publish, publish, removeHandler, setAutoFlush, setCloseChildren, setEnabled, setEncoding, setErrorManager, setFilter, setFormatter, setHandlers, setLevel, unprotect
-
-
-
-
Field Detail
-
DEFAULT_PORT
public static final int DEFAULT_PORT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SocketHandler
public SocketHandler() throws java.net.UnknownHostExceptionCreates a socket handler with an address of localhost and port of 4560.- Throws:
java.net.UnknownHostException- if an error occurs attempting to retrieve the localhost
-
SocketHandler
public SocketHandler(java.lang.String hostname, int port) throws java.net.UnknownHostExceptionCreates a socket handler.- Parameters:
hostname- the hostname to connect toport- the port to connect to- Throws:
java.net.UnknownHostException- if an error occurs resolving the address
-
SocketHandler
public SocketHandler(java.net.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, java.lang.String hostname, int port) throws java.net.UnknownHostException
Creates a socket handler.- Parameters:
protocol- the protocol to connect withhostname- the hostname to connect toport- the port to connect to- Throws:
java.net.UnknownHostException- if an error occurs resolving the hostname
-
SocketHandler
public SocketHandler(SocketHandler.Protocol protocol, java.net.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(javax.net.SocketFactory socketFactory, SocketHandler.Protocol protocol, java.lang.String hostname, int port) throws java.net.UnknownHostExceptionCreates a socket handler.- Parameters:
socketFactory- the socket factory to use for creating TCP or SSL TCP connections, ifnulla default factory will be usedprotocol- the protocol to connect withhostname- the hostname to connect toport- the port to connect to- Throws:
java.net.UnknownHostException- if an error occurs resolving the hostname- See Also:
SocketHandler(ClientSocketFactory, Protocol)
-
SocketHandler
public SocketHandler(javax.net.SocketFactory socketFactory, SocketHandler.Protocol protocol, java.net.InetAddress address, int port)Creates a socket handler.- Parameters:
socketFactory- the socket factory to use for creating TCP or SSL TCP connections, ifnulla 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:ExtHandlerDo the actual work of publication; the record will have been filtered already. The default implementation does nothing except to flush if theautoFlushproperty 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:
doPublishin classExtHandler- Parameters:
record- the log record to publish
-
flush
public void flush()
Description copied from class:ExtHandlerFlush all child handlers.- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classExtHandler
-
close
public void close() throws java.lang.SecurityExceptionDescription copied from class:ExtHandlerClose all child handlers.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classExtHandler- Throws:
java.lang.SecurityException
-
getAddress
public java.net.InetAddress getAddress()
Returns the address being used.- Returns:
- the address
-
setAddress
public void setAddress(java.net.InetAddress address)
Sets the address to connect to.Note that is resets the client socket factory.
- Parameters:
address- the address
-
setHostname
public void setHostname(java.lang.String hostname) throws java.net.UnknownHostExceptionSets 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:
java.net.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:
trueif 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 totruethewritemethods will block when attempting to reconnect. This is only advisable to be set totrueif using an asynchronous handler.- Parameters:
blockOnReconnect-trueto block when reconnecting orfalseto 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 isnullthe 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(javax.net.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
nulland 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. Ifnullthe address and port are required to be set.- Parameters:
clientSocketFactory- the client socket factory to use
-
-