Apache Log4cxx  Version 1.8.0
Loading...
Searching...
No Matches
log4cxx::net::SocketAppenderSkeleton Class Referenceabstract

Abstract base class that sends spi::LoggingEvent elements to a remote server. More...

#include <socketappenderskeleton.h>

Inheritance diagram for log4cxx::net::SocketAppenderSkeleton:
log4cxx::AppenderSkeleton log4cxx::Appender log4cxx::helpers::Object log4cxx::spi::OptionHandler log4cxx::helpers::Object log4cxx::net::XMLSocketAppender

Public Member Functions

 SocketAppenderSkeleton (int defaultPort, int reconnectionDelay)
 ~SocketAppenderSkeleton ()
 SocketAppenderSkeleton (helpers::InetAddressPtr address, int port, int reconnectionDelay)
 Connects to remote server at address and port.
 SocketAppenderSkeleton (const LogString &host, int port, int reconnectionDelay)
 Connects to remote server at host and port.
void activateOptions (helpers::Pool &p) override
void close () override
 Release any resources allocated within the appender such as file handles, network connections, etc.
bool requiresLayout () const override
 This appender does not use a layout.
void setRemoteHost (const LogString &host)
 The RemoteHost option takes a string value which should be the host name of the server where a Apache Chainsaw or compatible is running.
const LogStringgetRemoteHost () const
 Returns value of the RemoteHost option.
void setPort (int port1)
 The Port option takes a positive integer representing the port where the server is waiting for connections.
int getPort () const
 Returns value of the Port option.
void setLocationInfo (bool locationInfo1)
 The LocationInfo option takes a boolean value.
bool getLocationInfo () const
 Returns value of the LocationInfo option.
void setReconnectionDelay (int reconnectionDelay1)
 The ReconnectionDelay option takes a positive integer representing the number of milliseconds to wait between each failed connection attempt to the server.
int getReconnectionDelay () const
 Returns value of the ReconnectionDelay option.
void fireConnector ()
void setOption (const LogString &option, const LogString &value) override
 Set option to value.
void activateOptions ()
Public Member Functions inherited from log4cxx::AppenderSkeleton
 AppenderSkeleton ()
 AppenderSkeleton (const LayoutPtr &layout)
virtual ~AppenderSkeleton ()
void finalize ()
 Finalize this appender by calling the derived class' close method.
void addFilter (const spi::FilterPtr newFilter) override
 Add a filter to end of the filter list.
void clearFilters () override
 Clear the filters chain.
const spi::ErrorHandlerPtr getErrorHandler () const
 Return the currently set spi::ErrorHandler for this Appender.
spi::FilterPtr getFilter () const override
 Returns the head Filter.
const spi::FilterPtr getFirstFilter () const
 Return the first filter in the filter chain for this Appender.
LayoutPtr getLayout () const override
 Returns the layout of this appender.
LogString getName () const override
 Returns the name of this Appender.
const LevelPtr getThreshold () const
 Returns this appenders threshold level.
bool isAsSevereAsThreshold (const LevelPtr &level) const
 Check whether the message level is below the appender's threshold.
void doAppend (const spi::LoggingEventPtr &event, helpers::Pool &p) override
 Call AppenderSkeleton::doAppendImpl after acquiring a lock that prevents other threads from concurrently executing AppenderSkeleton::doAppendImpl.
void setErrorHandler (const spi::ErrorHandlerPtr eh)
 Set the ErrorHandler for this Appender.
void setLayout (const LayoutPtr layout1) override
 Set the layout for this appender.
void setName (const LogString &name1) override
 Set the name of this Appender.
void setThreshold (const LevelPtr &threshold)
 Set the threshold level.
void activateOptions ()
Public Member Functions inherited from log4cxx::Appender
virtual ~Appender ()
void doAppend (const spi::LoggingEventPtr &event)
Public Member Functions inherited from log4cxx::spi::OptionHandler
virtual ~OptionHandler ()
void activateOptions ()
Public Member Functions inherited from log4cxx::helpers::Object
virtual ~Object ()
virtual const helpers::ClassgetClass () const =0
virtual bool instanceof (const Class &clazz) const =0
virtual const void * cast (const Class &clazz) const =0

Protected Member Functions

 SocketAppenderSkeleton (std::unique_ptr< SocketAppenderSkeletonPriv > priv)
virtual void setSocket (helpers::SocketPtr &socket, helpers::Pool &p)=0
virtual void cleanUp (log4cxx::helpers::Pool &p)=0
virtual int getDefaultDelay () const =0
virtual int getDefaultPort () const =0
Protected Member Functions inherited from log4cxx::AppenderSkeleton
 AppenderSkeleton (LOG4CXX_PRIVATE_PTR(AppenderSkeletonPrivate) priv)
virtual void append (const spi::LoggingEventPtr &event, helpers::Pool &p)=0
 Subclasses of AppenderSkeleton must implement this method to perform actual logging.
void doAppendImpl (const spi::LoggingEventPtr &event, helpers::Pool &p)
 Compare event level against the appender threshold and check that event is accepted.
bool isAccepted (const spi::LoggingEventPtr &event) const
 Does no attached filter deny event or does an attached filter accept event?

Detailed Description

Abstract base class that sends spi::LoggingEvent elements to a remote server.

This appender has the following properties:

  • The event will be logged with the same time stamp, NDC, location info as if it were logged locally by the client.
  • Remote logging uses the TCP protocol, so if the server is reachable, 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 task 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.
  • If the application hosting this appender exits before it is closed, either explicitly or subsequent to destruction, then there might be untransmitted data in the pipe which might be lost.

To avoid lost data, it is usually sufficient to close the appender either explicitly or by calling the LogManager::shutdown method before exiting the application.

A periodic task will connect when the server becomes available. It does this by attempting to open a new connection every reconnectionDelay milliseconds.

The periodic task stops trying whenever a connection is established. It will restart attempting to open a new connection to the server when a previously open connection is droppped.

Constructor & Destructor Documentation

◆ SocketAppenderSkeleton() [1/4]

log4cxx::net::SocketAppenderSkeleton::SocketAppenderSkeleton ( int defaultPort,
int reconnectionDelay )

◆ ~SocketAppenderSkeleton()

log4cxx::net::SocketAppenderSkeleton::~SocketAppenderSkeleton ( )

◆ SocketAppenderSkeleton() [2/4]

log4cxx::net::SocketAppenderSkeleton::SocketAppenderSkeleton ( helpers::InetAddressPtr address,
int port,
int reconnectionDelay )

Connects to remote server at address and port.

◆ SocketAppenderSkeleton() [3/4]

log4cxx::net::SocketAppenderSkeleton::SocketAppenderSkeleton ( const LogString & host,
int port,
int reconnectionDelay )

Connects to remote server at host and port.

◆ SocketAppenderSkeleton() [4/4]

log4cxx::net::SocketAppenderSkeleton::SocketAppenderSkeleton ( std::unique_ptr< SocketAppenderSkeletonPriv > priv)
protected

Member Function Documentation

◆ activateOptions() [1/2]

void log4cxx::spi::OptionHandler::activateOptions ( )

◆ activateOptions() [2/2]

void log4cxx::net::SocketAppenderSkeleton::activateOptions ( helpers::Pool & p)
overridevirtual

Connects to the specified RemoteHost and Port.

Reimplemented from log4cxx::AppenderSkeleton.

Reimplemented in log4cxx::net::XMLSocketAppender.

◆ cleanUp()

virtual void log4cxx::net::SocketAppenderSkeleton::cleanUp ( log4cxx::helpers::Pool & p)
protectedpure virtual
Deprecated
This method will be removed in a future version.

Implemented in log4cxx::net::XMLSocketAppender.

◆ close()

void log4cxx::net::SocketAppenderSkeleton::close ( )
overridevirtual

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 log4cxx::Appender.

◆ fireConnector()

void log4cxx::net::SocketAppenderSkeleton::fireConnector ( )
Deprecated
This method will be removed in a future version.

◆ getDefaultDelay()

virtual int log4cxx::net::SocketAppenderSkeleton::getDefaultDelay ( ) const
protectedpure virtual

◆ getDefaultPort()

virtual int log4cxx::net::SocketAppenderSkeleton::getDefaultPort ( ) const
protectedpure virtual

◆ getLocationInfo()

bool log4cxx::net::SocketAppenderSkeleton::getLocationInfo ( ) const

Returns value of the LocationInfo option.

◆ getPort()

int log4cxx::net::SocketAppenderSkeleton::getPort ( ) const

Returns value of the Port option.

◆ getReconnectionDelay()

int log4cxx::net::SocketAppenderSkeleton::getReconnectionDelay ( ) const

Returns value of the ReconnectionDelay option.

◆ getRemoteHost()

const LogString & log4cxx::net::SocketAppenderSkeleton::getRemoteHost ( ) const

Returns value of the RemoteHost option.

◆ requiresLayout()

bool log4cxx::net::SocketAppenderSkeleton::requiresLayout ( ) const
inlineoverridevirtual

This appender does not use a layout.

Hence, this method returns false.

Implements log4cxx::Appender.

◆ setLocationInfo()

void log4cxx::net::SocketAppenderSkeleton::setLocationInfo ( bool locationInfo1)

The LocationInfo option takes a boolean value.

If true, the information sent to the remote host will include location information. By default no location information is sent to the server.

◆ setOption()

void log4cxx::net::SocketAppenderSkeleton::setOption ( const LogString & option,
const LogString & value )
overridevirtual

Set option to value.

Supported options Supported values Default value
RemoteHost (1) -
Port {int} (2)
LocationInfo True,False False
SocketSubclass (3) APRSocket

(1) A valid internet address.

(2) Provided by the derived class.

(3) A registered class derived from helpers::Socket.

See also
AppenderSkeleton::setOption()

Reimplemented from log4cxx::AppenderSkeleton.

◆ setPort()

void log4cxx::net::SocketAppenderSkeleton::setPort ( int port1)

The Port option takes a positive integer representing the port where the server is waiting for connections.

◆ setReconnectionDelay()

void log4cxx::net::SocketAppenderSkeleton::setReconnectionDelay ( int reconnectionDelay1)

The ReconnectionDelay option takes a positive integer representing the number of milliseconds to wait between each failed connection attempt to the server.

The default value of this option is 30000 which corresponds to 30 seconds.

Setting this option to zero turns off reconnection capability.

◆ setRemoteHost()

void log4cxx::net::SocketAppenderSkeleton::setRemoteHost ( const LogString & host)

The RemoteHost option takes a string value which should be the host name of the server where a Apache Chainsaw or compatible is running.

◆ setSocket()

virtual void log4cxx::net::SocketAppenderSkeleton::setSocket ( helpers::SocketPtr & socket,
helpers::Pool & p )
protectedpure virtual
Deprecated
This method will be removed in a future version.

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