Apache Log4cxx  Version 1.5.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
log4cxx::net::XMLSocketAppender Class Reference

Sends spi::LoggingEvent elements to a remote a log server, usually in XML format. More...

#include <xmlsocketappender.h>

Inheritance diagram for log4cxx::net::XMLSocketAppender:

Public Member Functions

 
 
  XMLSocketAppender (helpers::InetAddressPtr address, int port)
  Connects to remote server at address and port.
 
  XMLSocketAppender (const LogString &host, int port)
  Connects to remote server at host and port.
 
- Public Member Functions inherited from log4cxx::net::SocketAppenderSkeleton
  SocketAppenderSkeleton (int defaultPort, int reconnectionDelay)
 
 
  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
  Activate the options that were previously set with calls to option setters.
 
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.
 
- Public Member Functions inherited from log4cxx::AppenderSkeleton
 
  AppenderSkeleton (const LayoutPtr &layout)
 
virtual  ~AppenderSkeleton ()
 
void  finalize ()
  Finalize this appender by calling the derived class' close method.
 
void  activateOptions (helpers::Pool &) override
  Activate the options that were previously set with calls to option setters.
 
void  setOption (const LogString &option, const LogString &value) override
  Set option to value.
 
void  addFilter (const spi::FilterPtr newFilter) override
  Add a filter to end of the filter list.
 
void  clearFilters () override
  Clear the filters chain.
 
  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 &pool) override
  This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method.
 
  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.
 
- Public Member Functions inherited from log4cxx::Appender
virtual  ~Appender ()
 
virtual void  addFilter (const spi::FilterPtr newFilter)=0
  Add a filter to the end of the filter list.
 
virtual spi::FilterPtr  getFilter () const =0
  Returns the head Filter.
 
virtual void  clearFilters ()=0
  Clear the list of filters by removing all the filters in it.
 
virtual void  close ()=0
  Release any resources allocated within the appender such as file handles, network connections, etc.
 
virtual void  doAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)=0
  Log in Appender specific way.
 
virtual LogString  getName () const =0
  Get the name of this appender.
 
virtual void  setLayout (const LayoutPtr layout)=0
  Set the Layout for this appender.
 
virtual LayoutPtr  getLayout () const =0
  Returns this appenders layout.
 
virtual void  setName (const LogString &name)=0
  Set the name of this appender.
 
virtual bool  requiresLayout () const =0
  Configurators call this method to determine if the appender requires a layout.
 
- Public Member Functions inherited from log4cxx::spi::OptionHandler
virtual  ~OptionHandler ()
 
virtual void  activateOptions (helpers::Pool &p)=0
  Activate the options that were previously set with calls to option setters.
 
virtual void  setOption (const LogString &option, const LogString &value)=0
  Set option to value.
 
- 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
 

Static Public Attributes

static int  DEFAULT_PORT
  The default port number of remote logging server (4560).
 
  The default reconnection delay (30000 milliseconds or 30 seconds).
 
static const int  MAX_EVENT_LEN
  Unused.
 

Protected Member Functions

void  setSocket (log4cxx::helpers::SocketPtr &socket, helpers::Pool &p) override
 
void  cleanUp (helpers::Pool &p) override
 
int  getDefaultDelay () const override
 
int  getDefaultPort () const override
 
void  append (const spi::LoggingEventPtr &event, helpers::Pool &pool) override
  Subclasses of AppenderSkeleton should implement this method to perform actual logging.
 
- Protected Member Functions inherited from log4cxx::net::SocketAppenderSkeleton
  SocketAppenderSkeleton (std::unique_ptr< SocketAppenderSkeletonPriv > priv)
 
virtual void  setSocket (log4cxx::helpers::SocketPtr &socket, log4cxx::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, log4cxx::helpers::Pool &p)=0
  Subclasses of AppenderSkeleton should implement this method to perform actual logging.
 
 

Detailed Description

Sends spi::LoggingEvent elements to a remote a log server, usually in XML format.

Here is an example configuration that writes JSON to the TCP input plugin of a fluent-bit log server running on the same system as the application:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="A1" class="XMLSocketAppender">
<param name="RemoteHost" value="localhost" />
<param name="Port" value="5170" />
<layout class="JSONLayout"/>
</appender>
<root>
<priority value ="INFO" />
<appender-ref ref="A1" />
</root>
</log4j:configuration>

XMLSocketAppender 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. 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.
  • Even if an XMLSocketAppender is no longer attached to any logger, it will not be destroyed in the presence of a connector thread. A connector thread exists only if the connection to the server is down. To avoid this destruction problem, you should close the the XMLSocketAppender explicitly. See also next item.

    Long lived applications which create/destroy many XMLSocketAppender instances should be aware of this destruction problem. Most other applications can safely ignore it.
  • If the application hosting the XMLSocketAppender exits before the XMLSocketAppender 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 XMLSocketAppender either explicitly or by calling the LogManager::shutdown method before exiting the application.

Constructor & Destructor Documentation

◆  XMLSocketAppender() [1/3]

log4cxx::net::XMLSocketAppender::XMLSocketAppender ( )

◆  ~XMLSocketAppender()

log4cxx::net::XMLSocketAppender::~XMLSocketAppender ( )

◆  XMLSocketAppender() [2/3]

log4cxx::net::XMLSocketAppender::XMLSocketAppender ( helpers::InetAddressPtr  address,
int  port 
)

Connects to remote server at address and port.

◆  XMLSocketAppender() [3/3]

log4cxx::net::XMLSocketAppender::XMLSocketAppender ( const LogStringhost,
int  port 
)

Connects to remote server at host and port.

Member Function Documentation

◆  append()

void log4cxx::net::XMLSocketAppender::append ( const spi::LoggingEventPtrevent,
helpers::Poolp 
)
overrideprotectedvirtual

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements log4cxx::AppenderSkeleton.

◆  cleanUp()

void log4cxx::net::XMLSocketAppender::cleanUp ( helpers::Poolp )
overrideprotectedvirtual

Implements log4cxx::net::SocketAppenderSkeleton.

◆  getDefaultDelay()

int log4cxx::net::XMLSocketAppender::getDefaultDelay ( ) const
overrideprotectedvirtual

Implements log4cxx::net::SocketAppenderSkeleton.

◆  getDefaultPort()

int log4cxx::net::XMLSocketAppender::getDefaultPort ( ) const
overrideprotectedvirtual

Implements log4cxx::net::SocketAppenderSkeleton.

◆  setSocket()

void log4cxx::net::XMLSocketAppender::setSocket ( log4cxx::helpers::SocketPtr &  socket,
helpers::Poolp 
)
overrideprotectedvirtual

Implements log4cxx::net::SocketAppenderSkeleton.

Member Data Documentation

◆  DEFAULT_PORT

int log4cxx::net::XMLSocketAppender::DEFAULT_PORT
static

The default port number of remote logging server (4560).

◆  DEFAULT_RECONNECTION_DELAY

int log4cxx::net::XMLSocketAppender::DEFAULT_RECONNECTION_DELAY
static

The default reconnection delay (30000 milliseconds or 30 seconds).

◆  MAX_EVENT_LEN

const int log4cxx::net::XMLSocketAppender::MAX_EVENT_LEN
static

Unused.


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

AltStyle によって変換されたページ (->オリジナル) /