Apache Log4cxx  Version 1.3.0
Loading...
Searching...
No Matches
log4cxx::rolling::RollingFileAppender Class Reference

RollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy. More...

#include <rollingfileappender.h>

Inheritance diagram for log4cxx::rolling::RollingFileAppender:
log4cxx::FileAppender log4cxx::WriterAppender log4cxx::AppenderSkeleton log4cxx::Appender log4cxx::helpers::Object log4cxx::spi::OptionHandler log4cxx::helpers::Object

Public Member Functions

 RollingFileAppender ()
 
int getMaxBackupIndex () const
 Returns the value of the MaxBackupIndex option.
 
size_t getMaximumFileSize () const
 Get the maximum size that the output file is allowed to reach before being rolled over to backup files.
 
void setMaxBackupIndex (int maxBackupIndex)
 Set the maximum number of backup files to keep around.
 
void setMaxFileSize (const LogString &value)
 Set the maximum size that the output file is allowed to reach before being rolled over to backup files.
 
void setMaximumFileSize (size_t value)
 
void setDatePattern (const LogString &pattern)
 The DatePattern takes a string in the same format as expected by SimpleDateFormat.
 
LogString makeFileNamePattern (const LogString &datePattern)
 
void setOption (const LogString &option, const LogString &value) override
 Set option to value.
 
void activateOptions (helpers::Pool &pool) override
 Activate the options that were previously set with calls to option setters.
 
bool rollover (log4cxx::helpers::Pool &p)
 Implements the configured roll over behaviour.
 
RollingPolicyPtr getRollingPolicy () const
 The policy that implements the scheme for rolling over a log file.
 
TriggeringPolicyPtr getTriggeringPolicy () const
 The policy that determine when to trigger a log file rollover.
 
void setRollingPolicy (const RollingPolicyPtr &policy)
 Use policy as the scheme for rolling over log files.
 
void setTriggeringPolicy (const TriggeringPolicyPtr &policy)
 Use policy to determine when to trigger a log file rollover.
 
void close () override
 Close appender.
 
size_t getFileLength () const
 Get byte length of current active log file.
 
void incrementFileLength (size_t increment)
 Increments estimated byte length of current active log file.
 
- Public Member Functions inherited from log4cxx::FileAppender
 FileAppender ()
 The default constructor does not do anything.
 
 FileAppender (const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)
 Instantiate a FileAppender and open the file designated by filename.
 
 FileAppender (const LayoutPtr &layout, const LogString &filename, bool append)
 Instantiate a FileAppender and open the file designated by filename.
 
 FileAppender (const LayoutPtr &layout, const LogString &filename)
 Instantiate a FileAppender and open the file designated by filename.
 
 ~FileAppender ()
 
virtual void setFile (const LogString &file)
 The File property takes a string value which should be the name of the file to append to.
 
bool getAppend () const
 Returns the value of the Append option.
 
LogString getFile () const
 Returns the value of the File option.
 
void activateOptions (helpers::Pool &p) 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.
 
bool getBufferedIO () const
 Get the value of the BufferedIO option.
 
int getBufferSize () const
 Get the size of the IO buffer.
 
void setAppend (bool fileAppend1)
 The Append option takes a boolean value.
 
void setBufferedIO (bool bufferedIO)
 The BufferedIO option takes a boolean value.
 
void setBufferSize (int bufferSize1)
 Set the size of the IO buffer.
 
- Public Member Functions inherited from log4cxx::WriterAppender
 WriterAppender ()
 This default constructor does nothing.
 
 ~WriterAppender ()
 
void activateOptions (helpers::Pool &pool) override
 Derived appenders should override this method if option structure requires it.
 
void setImmediateFlush (bool value)
 If the ImmediateFlush option is set to true, the appender will flush at the end of each write.
 
bool getImmediateFlush () const
 Returns value of the ImmediateFlush option.
 
void append (const spi::LoggingEventPtr &event, helpers::Pool &p) override
 This method is called by the AppenderSkeleton::doAppend method.
 
void close () override
 Close this appender instance.
 
LogString getEncoding () const
 The current encoding value.
 
void setEncoding (const LogString &value)
 Set the encoding to value.
 
void setOption (const LogString &option, const LogString &value) override
 Set option to value.
 
void setWriter (const log4cxx::helpers::WriterPtr &writer)
 
const log4cxx::helpers::WriterPtr getWriter () const
 
bool requiresLayout () const override
 Configurators call this method to determine if the appender requires a layout.
 
- 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 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.
 
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 &pool) override
 This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method.
 
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.
 
- 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
 

Protected Member Functions

void subAppend (const spi::LoggingEventPtr &event, helpers::Pool &p) override
 Actual writing occurs here.
 
bool rolloverInternal (log4cxx::helpers::Pool &p)
 
helpers::WriterPtr createWriter (helpers::OutputStreamPtr &os) override
 Returns an OutputStreamWriter when passed an OutputStream.
 
- Protected Member Functions inherited from log4cxx::FileAppender
void activateOptionsInternal (log4cxx::helpers::Pool &p)
 
void setFileInternal (const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)
 Sets and opens the file where the log output will go.
 
void setFileInternal (const LogString &file)
 
 FileAppender (std::unique_ptr< FileAppenderPriv > priv)
 
- Protected Member Functions inherited from log4cxx::WriterAppender
 WriterAppender (const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)
 
 WriterAppender (const LayoutPtr &layout)
 
 WriterAppender (std::unique_ptr< WriterAppenderPriv > priv)
 
virtual bool checkEntryConditions () const
 This method determines if there is a sense in attempting to append.
 
void closeWriter ()
 Close the underlying log4cxx::helpers::Writer.
 
virtual helpers::WriterPtr createWriter (helpers::OutputStreamPtr &os)
 Returns an OutputStreamWriter when passed an OutputStream.
 
virtual void subAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Actual writing occurs here.
 
virtual void writeFooter (log4cxx::helpers::Pool &p)
 Write a footer as produced by the embedded layout's Layout::appendFooter method.
 
virtual void writeHeader (log4cxx::helpers::Pool &p)
 Write a header as produced by the embedded layout's Layout::appendHeader method.
 
void setWriterInternal (const log4cxx::helpers::WriterPtr &writer)
 Set the writer.
 
- 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.
 
void doAppendImpl (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
 

Additional Inherited Members

- Static Public Member Functions inherited from log4cxx::FileAppender
static LogString stripDuplicateBackslashes (const LogString &name)
 Replaces double backslashes with single backslashes for compatibility with paths from earlier XML configurations files.
 

Detailed Description

RollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy.

To be of any use, a RollingFileAppender instance must have both a RollingPolicy and a TriggeringPolicy set up. However, if its RollingPolicy also implements the TriggeringPolicy interface, then only the former needs to be set up. For example, TimeBasedRollingPolicy acts both as a RollingPolicy and a TriggeringPolicy.

RollingFileAppender can be configured programattically or using log4cxx::xml::DOMConfigurator. Here is a sample configration file:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration>

<log4j:configuration debug="true">

  <appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
    </rollingPolicy>

    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%c{1} - %m%n"/>
    </layout>
  </appender>

  <root>
    <appender-ref ref="ROLL"/>
  </root>

</log4j:configuration>

This configuration file specifies a monthly rollover schedule including automatic compression of the archived files. See TimeBasedRollingPolicy for more details.

Constructor & Destructor Documentation

◆ RollingFileAppender()

log4cxx::rolling::RollingFileAppender::RollingFileAppender ( )

Member Function Documentation

◆ activateOptions()

void log4cxx::rolling::RollingFileAppender::activateOptions ( helpers::Pool pool)
overridevirtual

Activate the options that were previously set with calls to option setters.

See also
FileAppender::activateOptions()

Reimplemented from log4cxx::FileAppender.

◆ close()

void log4cxx::rolling::RollingFileAppender::close ( )
overridevirtual

Close appender.

Waits for any asynchronous file compression actions to be completed.

Implements log4cxx::Appender.

◆ createWriter()

helpers::WriterPtr log4cxx::rolling::RollingFileAppender::createWriter ( helpers::OutputStreamPtr &  os)
overrideprotectedvirtual

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.

Parameters
osoutput stream, may not be null.
Returns
new writer.

Reimplemented from log4cxx::WriterAppender.

◆ getFileLength()

size_t log4cxx::rolling::RollingFileAppender::getFileLength ( ) const

Get byte length of current active log file.

Returns
byte length of current active log file.

◆ getMaxBackupIndex()

int log4cxx::rolling::RollingFileAppender::getMaxBackupIndex ( ) const

Returns the value of the MaxBackupIndex option.

◆ getMaximumFileSize()

size_t log4cxx::rolling::RollingFileAppender::getMaximumFileSize ( ) const

Get the maximum size that the output file is allowed to reach before being rolled over to backup files.

◆ getRollingPolicy()

RollingPolicyPtr log4cxx::rolling::RollingFileAppender::getRollingPolicy ( ) const

The policy that implements the scheme for rolling over a log file.

◆ getTriggeringPolicy()

TriggeringPolicyPtr log4cxx::rolling::RollingFileAppender::getTriggeringPolicy ( ) const

The policy that determine when to trigger a log file rollover.

◆ incrementFileLength()

void log4cxx::rolling::RollingFileAppender::incrementFileLength ( size_t  increment)

Increments estimated byte length of current active log file.

Parameters
incrementadditional bytes written to log file.

◆ makeFileNamePattern()

LogString log4cxx::rolling::RollingFileAppender::makeFileNamePattern ( const LogString datePattern)

◆ rollover()

bool log4cxx::rolling::RollingFileAppender::rollover ( log4cxx::helpers::Pool p)

Implements the configured roll over behaviour.

If MaxBackupIndex is positive, then files {File.1, ..., File.MaxBackupIndex -1} are renamed to {File.2, ..., File.MaxBackupIndex}. Moreover, File is renamed File.1 and closed. A new File is created to receive further log output.

If MaxBackupIndex is equal to zero, then the File is truncated with no backup files created.

◆ rolloverInternal()

bool log4cxx::rolling::RollingFileAppender::rolloverInternal ( log4cxx::helpers::Pool p)
protected

◆ setDatePattern()

void log4cxx::rolling::RollingFileAppender::setDatePattern ( const LogString pattern)

The DatePattern takes a string in the same format as expected by SimpleDateFormat.

This options determines the rollover schedule.

◆ setMaxBackupIndex()

void log4cxx::rolling::RollingFileAppender::setMaxBackupIndex ( int  maxBackupIndex)

Set the maximum number of backup files to keep around.

The MaxBackupIndex option determines how many backup files are kept before the oldest is erased. This option takes a positive integer value. If set to zero, then there will be no backup files and the log file will be truncated when it reaches MaxFileSize.

◆ setMaxFileSize()

void log4cxx::rolling::RollingFileAppender::setMaxFileSize ( const LogString value)

Set the maximum size that the output file is allowed to reach before being rolled over to backup files.

In configuration files, the MaxFileSize option takes an long integer in the range 0 - 2^63. You can specify the value with the suffixes "KB", "MB" or "GB" so that the integer is interpreted being expressed respectively in kilobytes, megabytes or gigabytes. For example, the value "10KB" will be interpreted as 10240.

◆ setMaximumFileSize()

void log4cxx::rolling::RollingFileAppender::setMaximumFileSize ( size_t  value)

◆ setOption()

void log4cxx::rolling::RollingFileAppender::setOption ( const LogString option,
const LogString value 
)
overridevirtual

Set option to value.

Supported options Supported values Default value
FileDatePattern (1) -
MaxBackupIndex 1-12 0
MaxFileSize (2) 10 MB

(1) A pattern compatible with java.text.SimpleDateFormat, "ABSOLUTE", "DATE" or "ISO8601". For example, "HH:mm:ss,SSS", "dd MMM yyyy HH:mm:ss,SSS" or "DATE".

(2) An integer in the range 0 - 2^63. You can specify the value with the suffixes "KB", "MB" or "GB" so that the integer is interpreted being expressed respectively in kilobytes, megabytes or gigabytes. For example, the value "10KB" will be interpreted as 10240.

See also
FileAppender::setOption()

Reimplemented from log4cxx::FileAppender.

◆ setRollingPolicy()

void log4cxx::rolling::RollingFileAppender::setRollingPolicy ( const RollingPolicyPtr &  policy)

Use policy as the scheme for rolling over log files.

Where the policy also implements TriggeringPolicy, then policy will be used to determine when to trigger a log file rollover.

◆ setTriggeringPolicy()

void log4cxx::rolling::RollingFileAppender::setTriggeringPolicy ( const TriggeringPolicyPtr &  policy)

Use policy to determine when to trigger a log file rollover.

◆ subAppend()

void log4cxx::rolling::RollingFileAppender::subAppend ( const spi::LoggingEventPtr event,
helpers::Pool p 
)
overrideprotectedvirtual

Actual writing occurs here.

Reimplemented from log4cxx::WriterAppender.


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