Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/util/logging/SocketHandler#pubctors) \| [Methods](https://developer.android.com/reference/java/util/logging/SocketHandler#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/util/logging/SocketHandler#inhmethods)

# SocketHandler


`
public


class
SocketHandler
`


`


`

`


`

`

extends https://developer.android.com/reference/java/util/logging/StreamHandler


`

`


`

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [java.util.logging.Handler](https://developer.android.com/reference/java/util/logging/Handler) |||
|   | ↳ | [java.util.logging.StreamHandler](https://developer.android.com/reference/java/util/logging/StreamHandler) ||
|   |   | ↳ | java.util.logging.SocketHandler |

<br />

*** ** * ** ***

Simple network logging Handler.


LogRecords are published to a network stream connection. By default
the XMLFormatter class is used for formatting.


**Configuration:**
By default each SocketHandler is initialized using the following
LogManager configuration properties where \<handler-name\>
refers to the fully-qualified class name of the handler.
If properties are not defined
(or have invalid values) then the specified default values are used.

- \<handler-name\>.level specifies the default level for the Handler (defaults to Level.ALL).
- \<handler-name\>.filter specifies the name of a Filter class to use (defaults to no Filter).
- \<handler-name\>.formatter specifies the name of a Formatter class to use (defaults to java.util.logging.XMLFormatter).
- \<handler-name\>.encoding the name of the character set encoding to use (defaults to the default platform encoding).
- \<handler-name\>.host specifies the target host name to connect to (no default).
- \<handler-name\>.port specifies the target TCP port to use (no default).


For example, the properties for `SocketHandler` would be:

- java.util.logging.SocketHandler.level=INFO
- java.util.logging.SocketHandler.formatter=java.util.logging.SimpleFormatter


For a custom handler, e.g. com.foo.MyHandler, the properties would be:

- com.foo.MyHandler.level=INFO
- com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter


The output IO stream is buffered, but is flushed after each
LogRecord is written.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/util/logging/SocketHandler#SocketHandler()() ` Create a SocketHandler, using only LogManager properties (or their defaults). |
| ` https://developer.android.com/reference/java/util/logging/SocketHandler#SocketHandler(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String host, int port) ` Construct a SocketHandler using a specified host and port. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/java/util/logging/SocketHandler#close()() ` Close this output stream. |
| ` void` | ` https://developer.android.com/reference/java/util/logging/SocketHandler#publish(java.util.logging.LogRecord)(https://developer.android.com/reference/java/util/logging/LogRecord record) ` Format and publish a LogRecord. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/util/logging/StreamHandler ` |---|---| | ` void` | ` https://developer.android.com/reference/java/util/logging/StreamHandler#close()() ` Close the current output stream. | | ` void` | ` https://developer.android.com/reference/java/util/logging/StreamHandler#flush()() ` Flush any buffered messages. | | ` boolean` | ` https://developer.android.com/reference/java/util/logging/StreamHandler#isLoggable(java.util.logging.LogRecord)(https://developer.android.com/reference/java/util/logging/LogRecord record) ` Check if this Handler would actually log a given LogRecord. | | ` void` | ` https://developer.android.com/reference/java/util/logging/StreamHandler#publish(java.util.logging.LogRecord)(https://developer.android.com/reference/java/util/logging/LogRecord record) ` Format and publish a LogRecord. | | ` void` | ` https://developer.android.com/reference/java/util/logging/StreamHandler#setEncoding(java.lang.String)(https://developer.android.com/reference/java/lang/String encoding) ` Set (or change) the character encoding used by this Handler. | | ` void` | ` https://developer.android.com/reference/java/util/logging/StreamHandler#setOutputStream(java.io.OutputStream)(https://developer.android.com/reference/java/io/OutputStream out) ` Change the output stream. | ||
| From class ` https://developer.android.com/reference/java/util/logging/Handler ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/util/logging/Handler#close()() ` Close the Handler and free all associated resources. | | ` abstract void` | ` https://developer.android.com/reference/java/util/logging/Handler#flush()() ` Flush any buffered output. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/util/logging/Handler#getEncoding()() ` Return the character encoding for this Handler. | | ` https://developer.android.com/reference/java/util/logging/ErrorManager` | ` https://developer.android.com/reference/java/util/logging/Handler#getErrorManager()() ` Retrieves the ErrorManager for this Handler. | | ` https://developer.android.com/reference/java/util/logging/Filter` | ` https://developer.android.com/reference/java/util/logging/Handler#getFilter()() ` Get the current Filter for this Handler. | | ` https://developer.android.com/reference/java/util/logging/Formatter` | ` https://developer.android.com/reference/java/util/logging/Handler#getFormatter()() ` Return the Formatter for this Handler. | | ` https://developer.android.com/reference/java/util/logging/Level` | ` https://developer.android.com/reference/java/util/logging/Handler#getLevel()() ` Get the log level specifying which messages will be logged by this Handler. | | ` boolean` | ` https://developer.android.com/reference/java/util/logging/Handler#isLoggable(java.util.logging.LogRecord)(https://developer.android.com/reference/java/util/logging/LogRecord record) ` Check if this Handler would actually log a given LogRecord. | | ` abstract void` | ` https://developer.android.com/reference/java/util/logging/Handler#publish(java.util.logging.LogRecord)(https://developer.android.com/reference/java/util/logging/LogRecord record) ` Publish a LogRecord. | | ` void` | ` https://developer.android.com/reference/java/util/logging/Handler#reportError(java.lang.String,%20java.lang.Exception,%20int)(https://developer.android.com/reference/java/lang/String msg, https://developer.android.com/reference/java/lang/Exception ex, int code) ` Protected convenience method to report an error to this Handler's ErrorManager. | | ` void` | ` https://developer.android.com/reference/java/util/logging/Handler#setEncoding(java.lang.String)(https://developer.android.com/reference/java/lang/String encoding) ` Set the character encoding used by this Handler. | | ` void` | ` https://developer.android.com/reference/java/util/logging/Handler#setErrorManager(java.util.logging.ErrorManager)(https://developer.android.com/reference/java/util/logging/ErrorManager em) ` Define an ErrorManager for this Handler. | | ` void` | ` https://developer.android.com/reference/java/util/logging/Handler#setFilter(java.util.logging.Filter)(https://developer.android.com/reference/java/util/logging/Filter newFilter) ` Set a Filter to control output on this Handler. | | ` void` | ` https://developer.android.com/reference/java/util/logging/Handler#setFormatter(java.util.logging.Formatter)(https://developer.android.com/reference/java/util/logging/Formatter newFormatter) ` Set a Formatter. | | ` void` | ` https://developer.android.com/reference/java/util/logging/Handler#setLevel(java.util.logging.Level)(https://developer.android.com/reference/java/util/logging/Level newLevel) ` Set the log level specifying which message levels will be logged by this Handler. | ||
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### SocketHandler

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SocketHandler ()
```

Create a SocketHandler, using only LogManager properties
(or their defaults).

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if we are unable to connect to the target host and port. |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the host or port are invalid or are not specified as LogManager properties. |

### SocketHandler

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SocketHandler (String host, 
                int port)
```

Construct a SocketHandler using a specified host and port.

The SocketHandler is configured based on LogManager
properties (or their default values) except that the given target host
and port arguments are used. If the host argument is empty, but not
null String then the localhost is used.

<br />

| Parameters ||
|---|---|
| `host` | `String`: target host. <br /> |
| `port` | `int`: target port. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if we are unable to connect to the target host and port. |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the host or port are invalid. |

## Public methods

### close

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void close ()
```

Close this output stream.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and if the caller does not have LoggingPermission("control"). |

### publish

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void publish (LogRecord record)
```

Format and publish a LogRecord.

<br />

| Parameters ||
|---|---|
| `record` | `LogRecord`: description of the log event. A null record is silently ignored and is not published <br /> |