WriterAppender Class Reference

WriterAppender appends log events to a standard output stream. More...

Inheritance diagram for WriterAppender:

## Public Member Functions

| WriterAppender ()
| This default constructor does nothing. More...
| ~WriterAppender ()
virtual void | activateOptions (log4cxx::helpers::Pool &pool)
| Derived appenders should override this method if option structure requires it. More...
void | setImmediateFlush (bool value)
| If the ImmediateFlush option is set to `true`, the appender will flush at the end of each write. More...
bool | getImmediateFlush () const
| Returns value of the ImmediateFlush option. More...
virtual void | append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
| This method is called by the AppenderSkeleton::doAppend method. More...
virtual void | close ()
| Close this appender instance. More...
LogString | getEncoding () const
void | setEncoding (const LogString &value)
void | setOption (const LogString &option, const LogString &value)
| Set `option` to `value`. More...
void | setWriter (const log4cxx::helpers::WriterPtr &writer)
virtual bool | requiresLayout () const
| Configurators call this method to determine if the appender requires a layout. More...
Public Member Functions inherited from AppenderSkeleton
| AppenderSkeleton ()
| AppenderSkeleton (const LayoutPtr &layout)
void | addRef () const
void | releaseRef () const
void | finalize ()
| Finalize this appender by calling the derived class' `close` method. More...
void | addFilter (const spi::FilterPtr &newFilter)
| Add a filter to end of the filter list. More...
void | clearFilters ()
| Clear the filters chain. More...
const spi::ErrorHandlerPtr & | getErrorHandler () const
| Return the currently set spi::ErrorHandler for this Appender. More...
spi::FilterPtr | getFilter () const
| Returns the head Filter. More...
const spi::FilterPtr & | getFirstFilter () const
| Return the first filter in the filter chain for this Appender. More...
LayoutPtr | getLayout () const
| Returns the layout of this appender. More...
LogString | getName () const
| Returns the name of this Appender. More...
const LevelPtr & | getThreshold ()
| Returns this appenders threshold level. More...
bool | isAsSevereAsThreshold (const LevelPtr &level) const
| Check whether the message level is below the appender's threshold. More...
void | doAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
| This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method. More...
void | setErrorHandler (const spi::ErrorHandlerPtr &eh)
| Set the ErrorHandler for this Appender. More...
void | setLayout (const LayoutPtr &layout1)
| Set the layout for this appender. More...
void | setName (const LogString &name1)
| Set the name of this Appender. More...
void | setThreshold (const LevelPtr &threshold)
| Set the threshold level. More...
Public Member Functions inherited from Appender
virtual | ~Appender ()
Public Member Functions inherited from OptionHandler
virtual | ~OptionHandler ()
Public Member Functions inherited from Object
virtual const helpers::Class & | getClass () const
virtual | ~Object ()
virtual bool | instanceof (const Class &clazz) const =0
virtual const void * | cast (const Class &clazz) const =0
Public Member Functions inherited from ObjectImpl
| ObjectImpl ()
virtual | ~ObjectImpl ()
void | addRef () const
void | releaseRef () const

## Protected Member Functions

| WriterAppender (const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)
| WriterAppender (const LayoutPtr &layout)
virtual bool | checkEntryConditions () const
| This method determines if there is a sense in attempting to append. More...
void | closeWriter ()
| Close the underlying log4cxx::helpers::Writer. More...
virtual log4cxx::helpers::WriterPtr | createWriter (log4cxx::helpers::OutputStreamPtr &os)
| Returns an OutputStreamWriter when passed an OutputStream. More...
virtual void | subAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
| Actual writing occurs here. More...
virtual void | writeFooter (log4cxx::helpers::Pool &p)
| Write a footer as produced by the embedded layout's Layout::appendFooter method. More...
virtual void | writeHeader (log4cxx::helpers::Pool &p)
| Write a header as produced by the embedded layout's Layout::appendHeader method. More...

## Additional Inherited Members

Static Public Member Functions inherited from Object
static const helpers::Class & | getStaticClass ()
static const log4cxx::helpers::ClassRegistration & | registerClass ()
Protected Attributes inherited from AppenderSkeleton
LayoutPtr | layout
| The layout variable does not need to be set if the appender implementation has its own layout. More...
LogString | name
| Appenders are named. More...
LevelPtr | threshold
| There is no level threshold filtering by default. More...
spi::ErrorHandlerPtr | errorHandler
| It is assumed and enforced that errorHandler is never null. More...
spi::FilterPtr | headFilter
| The first filter in the filter chain. More...
spi::FilterPtr | tailFilter
| The last filter in the filter chain. More...
bool | closed
| Is this appender closed? More...
log4cxx::helpers::Pool | pool
log4cxx::helpers::Mutex | mutex
Protected Attributes inherited from ObjectImpl
unsigned int volatile | ref

## Detailed Description

WriterAppender appends log events to a standard output stream.

## Constructor & Destructor Documentation

## WriterAppender() [1/3]

WriterAppender | ( |  | ) |

This default constructor does nothing.

## WriterAppender() [2/3]

WriterAppender | ( | const LayoutPtr & | layout,
|  | log4cxx::helpers::WriterPtr & | writer
| ) |  |

protected

## WriterAppender() [3/3]

WriterAppender | ( | const LayoutPtr & | layout | ) |

protected

## ~WriterAppender()

~WriterAppender | ( |  | ) |

## Member Function Documentation

## activateOptions()

virtual void activateOptions | ( | log4cxx::helpers::Pool & | pool | ) |

virtual

Derived appenders should override this method if option structure requires it.

Reimplemented from AppenderSkeleton.

Reimplemented in DailyRollingFileAppender, FileAppender, RollingFileAppender, RollingFileAppenderSkeleton, and ConsoleAppender.

## append()

virtual void append | ( | const spi::LoggingEventPtr & | event,
|  | log4cxx::helpers::Pool & | p
| ) |  |

virtual

This method is called by the AppenderSkeleton::doAppend method.

If the output stream exists and is writable then write a log statement to the output stream. Otherwise, write a single warning message to `stderr`.

The format of the output will depend on this appender's layout.

Implements AppenderSkeleton.

## checkEntryConditions()

virtual bool checkEntryConditions | ( |  | ) | const

protected virtual

This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value `false` is returned.

## close()

virtual void close | ( |  | ) |

virtual

Close this appender instance.

The underlying stream or writer is also closed.

Closed appenders cannot be reused.

Implements Appender.

Reimplemented in RollingFileAppenderSkeleton.

## closeWriter()

void closeWriter | ( |  | ) |

protected

Close the underlying log4cxx::helpers::Writer.

## createWriter()

virtual log4cxx::helpers::WriterPtr createWriter | ( | log4cxx::helpers::OutputStreamPtr & | os | ) |

protected virtual

Returns an OutputStreamWriter when passed an OutputStream.

The encoding used will depend on the value of the `encoding` property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog.

Reimplemented in RollingFileAppenderSkeleton.

## getEncoding()

LogString getEncoding | ( |  | ) | const

## getImmediateFlush()

bool getImmediateFlush | ( |  | ) | const

inline

Returns value of the ImmediateFlush option.

## requiresLayout()

virtual bool requiresLayout | ( |  | ) | const

virtual

Configurators call this method to determine if the appender requires a layout.

If this method returns `true`, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns `false`, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return `true`.

Implements Appender.

## setEncoding()

void setEncoding | ( | const LogString & | value | ) |

## setImmediateFlush()

void setImmediateFlush | ( | bool | value | ) |

If the ImmediateFlush option is set to `true`, the appender will flush at the end of each write.

This is the default behavior. If the option is set to `false`, then the underlying stream can defer writing to physical medium to a later time.

Avoiding the flush operation at the end of each append results in a performance gain of 10 to 20 percent. However, there is safety tradeoff involved in skipping flushing. Indeed, when flushing is skipped, then it is likely that the last few log events will not be recorded on disk when the application exits. This is a high price to pay even for a 20% performance gain.

## setOption()

void setOption | ( | const LogString & | option,
|  | const LogString & | value
| ) |  |

virtual

Set `option` to `value`.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from AppenderSkeleton.

## setWriter()

void setWriter | ( | const log4cxx::helpers::WriterPtr & | writer | ) |

Sets the Writer where the log output will go. The specified Writer must be opened by the user and be writable.

The `java.io.Writer` will be closed when the appender instance is closed.

WARNING: Logging to an unopened Writer will fail.

Parameters

  writer | An already opened Writer.

## subAppend()

virtual void subAppend | ( | const spi::LoggingEventPtr & | event,
|  | log4cxx::helpers::Pool & | p
| ) |  |

protected virtual

Actual writing occurs here.

Reimplemented in RollingFileAppenderSkeleton.

## writeFooter()

virtual void writeFooter | ( | log4cxx::helpers::Pool & | p | ) |

protected virtual

Write a footer as produced by the embedded layout's Layout::appendFooter method.

## writeHeader()

virtual void writeHeader | ( | log4cxx::helpers::Pool & | p | ) |

protected virtual

Write a header as produced by the embedded layout's Layout::appendHeader method.

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

- writerappender.h