# log4cplus::SocketAppender Class Reference

Sends LoggingEvent objects to a remote a log server. More...

`#include <socketappender.h>`

Inheritance diagram for log4cplus::SocketAppender:

[legend]
Collaboration diagram for log4cplus::SocketAppender:

[legend]
List of all members.

## Public Member Functions

| SocketAppender (const log4cplus::tstring &host, int port, const log4cplus::tstring &serverName=tstring())
| SocketAppender (const log4cplus::helpers::Properties properties)
| ~SocketAppender ()
virtual void | close ()
| Release any resources allocated within the appender such as file handles, network connections, etc.

## Protected Member Functions

void | openSocket ()
virtual void | append (const spi::InternalLoggingEvent &event)

## Protected Attributes

log4cplus::helpers::Socket | socket
log4cplus::tstring | host
int | port
log4cplus::tstring | serverName

## Detailed Description

Sends LoggingEvent objects to a remote a log server.

The SocketAppender has the following properties:

Remote logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, org.apache.log4j.NDC, location info as if it were logged locally by the client.

SocketAppenders do not use a layout.

Remote logging uses the TCP protocol. Consequently, if the server is reachable, then log events will eventually arrive at the server.

If the remote server is down, the logging requests are simply dropped. However, if and when the server comes back up, then event transmission is resumed transparently. This transparent reconneciton is performed by a connector thread which periodically attempts to connect to the server.

Logging events are automatically buffered by the native TCP implementation. This means that if the link to server is slow but still faster than the rate of (log) event production by the client, the client will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the client can only progress at the network rate. In particular, if the network link to the the server is down, the client will be blocked.

On the other hand, if the network link is up, but the server is down, the client will not be blocked when making log requests but the log events will be lost due to server unavailability.

Definition at line 68 of file socketappender.h.

## Constructor & Destructor Documentation

log4cplus::SocketAppender::SocketAppender | ( | const log4cplus::tstring & | host,
|  | int | port,
|  | const log4cplus::tstring & | serverName = tstring()
| ) |

log4cplus::SocketAppender::SocketAppender | ( | const log4cplus::helpers::Properties | properties | ) |

log4cplus::SocketAppender::~SocketAppender | ( |  | ) |

## Member Function Documentation

virtual void log4cplus::SocketAppender::append | ( | const spi::InternalLoggingEvent & | event | ) | `[protected, virtual]`

virtual void log4cplus::SocketAppender::close | ( |  | ) | `[virtual]`

| Release any resources allocated within the appender such as file handles, network connections, etc. It is a programming error to append to a closed appender. Implements log4cplus::Appender.

void log4cplus::SocketAppender::openSocket | ( |  | ) | `[protected]`

## Member Data Documentation

log4cplus::tstring log4cplus::SocketAppender::host`[protected]`

| Definition at line 87 of file socketappender.h.

int log4cplus::SocketAppender::port`[protected]`

| Definition at line 88 of file socketappender.h.

log4cplus::tstring log4cplus::SocketAppender::serverName`[protected]`

| Definition at line 89 of file socketappender.h.

log4cplus::helpers::Socket log4cplus::SocketAppender::socket`[protected]`

| Definition at line 86 of file socketappender.h.

The documentation for this class was generated from the following file:

- socketappender.h