Author: carnold
Date: Sat Feb 16 08:55:53 2008
New Revision: 628358
URL: http://svn.apache.org/viewvc?rev=628358&view=rev
Log:
LOGCXX-220: Rework of l::RFA using l::r::RFASkeleton superclass
Modified:
logging/log4cxx/trunk/src/main/cpp/obsoleterollingfileappender.cpp
logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h
logging/log4cxx/trunk/src/main/include/log4cxx/rollingfileappender.h
Modified: logging/log4cxx/trunk/src/main/cpp/obsoleterollingfileappender.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/obsoleterollingfileappender.cpp?rev=628358&r1=628357&r2=628358&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/obsoleterollingfileappender.cpp
(original)
+++ logging/log4cxx/trunk/src/main/cpp/obsoleterollingfileappender.cpp Sat Feb
16 08:55:53 2008
@@ -60,29 +60,26 @@
RollingFileAppender::RollingFileAppender()
- : maxFileSize(10*1024*1024), maxBackupIndex(1),
- rfa(new log4cxx::rolling::RollingFileAppender()) {
+ : maxFileSize(10*1024*1024), maxBackupIndex(1) {
}
RollingFileAppender::RollingFileAppender(
const LayoutPtr& layout,
const LogString& filename,
bool append)
- : maxFileSize(10*1024*1024), maxBackupIndex(1),
- rfa(new log4cxx::rolling::RollingFileAppender()) {
- rfa->setLayout(layout);
- rfa->setFile(filename);
- rfa->setAppend(append);
+ : maxFileSize(10*1024*1024), maxBackupIndex(1) {
+ setLayout(layout);
+ setFile(filename);
+ setAppend(append);
Pool pool;
activateOptions(pool);
}
RollingFileAppender::RollingFileAppender(const LayoutPtr& layout,
const LogString& filename)
- : maxFileSize(10*1024*1024), maxBackupIndex(1),
- rfa(new log4cxx::rolling::RollingFileAppender()) {
- rfa->setLayout(layout);
- rfa->setFile(filename);
+ : maxFileSize(10*1024*1024), maxBackupIndex(1) {
+ setLayout(layout);
+ setFile(filename);
Pool pool;
activateOptions(pool);
}
@@ -90,13 +87,6 @@
RollingFileAppender::~RollingFileAppender() {
}
-void RollingFileAppender::addRef() const {
- ObjectImpl::addRef();
-}
-
-void RollingFileAppender::releaseRef() const {
- ObjectImpl::releaseRef();
-}
void RollingFileAppender::setOption(const LogString& option,
const LogString& value)
@@ -117,7 +107,7 @@
}
else
{
- rfa->setOption(option, value);
+
log4cxx::rolling::RollingFileAppenderSkeleton::setOption(option, value);
}
}
@@ -135,7 +125,7 @@
}
void RollingFileAppender::setMaximumFileSize(int maxFileSize1) {
- RollingFileAppender::maxFileSize = maxFileSize1;
+ maxFileSize = maxFileSize1;
}
void RollingFileAppender::setMaxFileSize(const LogString& value) {
@@ -147,88 +137,17 @@
new log4cxx::rolling::SizeBasedTriggeringPolicy());
trigger->setMaxFileSize(maxFileSize);
trigger->activateOptions(pool);
- rfa->setTriggeringPolicy(trigger);
+ setTriggeringPolicy(trigger);
log4cxx::rolling::FixedWindowRollingPolicyPtr rolling(
new log4cxx::rolling::FixedWindowRollingPolicy());
rolling->setMinIndex(1);
rolling->setMaxIndex(maxBackupIndex);
- rolling->setFileNamePattern(rfa->getFile() + LOG4CXX_STR(".%i"));
+ rolling->setFileNamePattern(getFile() + LOG4CXX_STR(".%i"));
rolling->activateOptions(pool);
- rfa->setRollingPolicy(rolling);
-
- rfa->activateOptions(pool);
-}
-
-
-void RollingFileAppender::addFilter(const FilterPtr& newFilter) {
- rfa->addFilter(newFilter);
-}
-
-FilterPtr RollingFileAppender::getFilter() const {
- return rfa->getFilter();
-}
-
-void RollingFileAppender::clearFilters() {
- rfa->clearFilters();
-}
-
-void RollingFileAppender::close() {
- rfa->close();
-}
-
-bool RollingFileAppender::isClosed() const {
- return false;
-}
-
-bool RollingFileAppender::isActive() const {
-// return rfa->isActive();
- return true;
-}
-
-void RollingFileAppender::doAppend(const LoggingEventPtr& event, Pool& p) {
- rfa->doAppend(event, p);
-}
-
-LogString RollingFileAppender::getName() const {
- return rfa->getName();
-}
-
-void RollingFileAppender::setLayout(const LayoutPtr& layout) {
- rfa->setLayout(layout);
-}
+ setRollingPolicy(rolling);
-LayoutPtr RollingFileAppender::getLayout() const {
- return rfa->getLayout();
+ log4cxx::rolling::RollingFileAppenderSkeleton::activateOptions(pool);
}
-void RollingFileAppender::setName(const LogString& name) {
- rfa->setName(name);
-}
-
-void RollingFileAppender::setFile(const LogString& file) {
- rfa->setFile(file);
-}
-
-bool RollingFileAppender::getAppend() const {
- return rfa->getAppend();
-}
-
-void RollingFileAppender::setBufferedIO(bool bufferedIO) {
- rfa->setBufferedIO(bufferedIO);
-}
-
-void RollingFileAppender::setBufferSize(int bufferSize) {
- rfa->setBufferSize(bufferSize);
-}
-
-
-void RollingFileAppender::rollOver() {
- Pool p;
- rfa->rollover(p);
-}
-
-bool RollingFileAppender::requiresLayout() const {
- return true;
-}
Modified: logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp?rev=628358&r1=628357&r2=628358&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp Sat Feb 16
08:55:53 2008
@@ -33,19 +33,24 @@
using namespace log4cxx::helpers;
using namespace log4cxx::spi;
+
+IMPLEMENT_LOG4CXX_OBJECT(RollingFileAppenderSkeleton)
IMPLEMENT_LOG4CXX_OBJECT(RollingFileAppender)
/**
* Construct a new instance.
*/
+RollingFileAppenderSkeleton::RollingFileAppenderSkeleton() {
+}
+
RollingFileAppender::RollingFileAppender() {
}
/**
* Prepare instance of use.
*/
-void RollingFileAppender::activateOptions(Pool &p) {
+void RollingFileAppenderSkeleton::activateOptions(Pool &p) {
if (rollingPolicy == NULL) {
FixedWindowRollingPolicy* fwrp = new FixedWindowRollingPolicy();
fwrp->setFileNamePattern(getFile() + LOG4CXX_STR(".%i"));
@@ -128,7 +133,7 @@
* @return true if rollover performed.
*/
-bool RollingFileAppender::rollover(Pool& p) {
+bool RollingFileAppenderSkeleton::rollover(Pool& p) {
//
// can't roll without a policy
//
@@ -246,7 +251,7 @@
/**
* [EMAIL PROTECTED]
*/
-void RollingFileAppender::subAppend(const LoggingEventPtr& event, Pool& p) {
+void RollingFileAppenderSkeleton::subAppend(const LoggingEventPtr& event,
Pool& p) {
// The rollover check must precede actual writing. This is the
// only correct behavior for time driven triggers.
if (
@@ -270,7 +275,7 @@
* Get rolling policy.
* @return rolling policy.
*/
-RollingPolicyPtr RollingFileAppender::getRollingPolicy() const {
+RollingPolicyPtr RollingFileAppenderSkeleton::getRollingPolicy() const {
return rollingPolicy;
}
@@ -278,7 +283,7 @@
* Get triggering policy.
* @return triggering policy.
*/
-TriggeringPolicyPtr RollingFileAppender::getTriggeringPolicy() const {
+TriggeringPolicyPtr RollingFileAppenderSkeleton::getTriggeringPolicy() const {
return triggeringPolicy;
}
@@ -286,7 +291,7 @@
* Sets the rolling policy.
* @param policy rolling policy.
*/
-void RollingFileAppender::setRollingPolicy(const RollingPolicyPtr& policy) {
+void RollingFileAppenderSkeleton::setRollingPolicy(const RollingPolicyPtr&
policy) {
rollingPolicy = policy;
}
@@ -294,14 +299,14 @@
* Set triggering policy.
* @param policy triggering policy.
*/
-void RollingFileAppender::setTriggeringPolicy(const TriggeringPolicyPtr&
policy) {
+void RollingFileAppenderSkeleton::setTriggeringPolicy(const
TriggeringPolicyPtr& policy) {
triggeringPolicy = policy;
}
/**
* Close appender. Waits for any asynchronous file compression actions to be
completed.
*/
-void RollingFileAppender::close() {
+void RollingFileAppenderSkeleton::close() {
{
synchronized sync (mutex);
if (lastRolloverAsyncAction != NULL) {
@@ -328,7 +333,7 @@
/**
* Rolling file appender to inform of stream writes.
*/
- RollingFileAppenderPtr rfa;
+ RollingFileAppenderSkeletonPtr rfa;
public:
/**
@@ -337,7 +342,7 @@
* @param rfa rolling file appender to inform.
*/
CountingOutputStream(
- OutputStreamPtr& os1, RollingFileAppender* rfa1) :
+ OutputStreamPtr& os1, RollingFileAppenderSkeleton* rfa1) :
os(os1), rfa(rfa1) {
}
@@ -376,7 +381,7 @@
@param os output stream, may not be null.
@return new writer.
*/
-WriterPtr RollingFileAppender::createWriter(OutputStreamPtr& os) {
+WriterPtr RollingFileAppenderSkeleton::createWriter(OutputStreamPtr& os) {
OutputStreamPtr cos(new CountingOutputStream(os, this));
return FileAppender::createWriter(cos);
}
@@ -385,7 +390,7 @@
* Get byte length of current active log file.
* @return byte length of current active log file.
*/
-size_t RollingFileAppender::getFileLength() const {
+size_t RollingFileAppenderSkeleton::getFileLength() const {
return fileLength;
}
@@ -393,6 +398,6 @@
* Increments estimated byte length of current active log file.
* @param increment additional bytes written to log file.
*/
-void RollingFileAppender::incrementFileLength(size_t increment) {
+void RollingFileAppenderSkeleton::incrementFileLength(size_t increment) {
fileLength += increment;
}
Modified:
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h?rev=628358&r1=628357&r2=628358&view=diff
==============================================================================
---
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h
(original)
+++
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h
Sat Feb 16 08:55:53 2008
@@ -30,54 +30,15 @@
/**
- * <code>RollingFileAppender</code> extends [EMAIL PROTECTED]
FileAppender} to backup the log files
- * depending on [EMAIL PROTECTED] RollingPolicy} and [EMAIL PROTECTED]
TriggeringPolicy}.
- * <p>
- * To be of any use, a <code>RollingFileAppender</code> instance must
have both
- * a <code>RollingPolicy</code> and a <code>TriggeringPolicy</code>
set up.
- * However, if its <code>RollingPolicy</code> also implements the
- * <code>TriggeringPolicy</code> interface, then only the former needs
to be
- * set up. For example, [EMAIL PROTECTED] TimeBasedRollingPolicy} acts
both as a
- * <code>RollingPolicy</code> and a <code>TriggeringPolicy</code>.
- *
- * <p><code>RollingFileAppender</code> can be configured
programattically or
- * using [EMAIL PROTECTED] org.apache.log4j.joran.JoranConfigurator}.
Here is a sample
- * configration file:
-
- <pre><?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE log4j:configuration>
-
- <log4j:configuration debug="true">
-
- <appender name="ROLL"
class="org.apache.log4j.rolling.RollingFileAppender">
- <b><rollingPolicy
class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
- <param name="FileNamePattern"
value="/wombat/foo.%d{yyyy-MM}.gz"/>
- </rollingPolicy></b>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%c{1} - %m%n"/>
- </layout>
- </appender>
-
- <root">
- <appender-ref ref="ROLL"/>
- </root>
-
- </log4j:configuration>
- </pre>
-
- *<p>This configuration file specifies a monthly rollover schedule
including
- * automatic compression of the archived files. See
- * [EMAIL PROTECTED] TimeBasedRollingPolicy} for more details.
- *
- *
- *
+ * Base class for log4cxx::rolling::RollingFileAppender and
log4cxx::RollingFileAppender
+ * (analogues of org.apache.log4j.rolling.RFA from extras companion and
+ * org.apache.log4j.RFA from log4j 1.2, respectively).
*
* */
- class LOG4CXX_EXPORT RollingFileAppender : public FileAppender {
- DECLARE_LOG4CXX_OBJECT(RollingFileAppender)
+ class LOG4CXX_EXPORT RollingFileAppenderSkeleton : public FileAppender
{
+ DECLARE_LOG4CXX_OBJECT(RollingFileAppenderSkeleton)
BEGIN_LOG4CXX_CAST_MAP()
- LOG4CXX_CAST_ENTRY(RollingFileAppender)
+ LOG4CXX_CAST_ENTRY(RollingFileAppenderSkeleton)
LOG4CXX_CAST_ENTRY_CHAIN(FileAppender)
END_LOG4CXX_CAST_MAP()
@@ -106,7 +67,7 @@
* The default constructor simply calls its [EMAIL PROTECTED]
* FileAppender#FileAppender parents constructor}.
* */
- RollingFileAppender();
+ RollingFileAppenderSkeleton();
void activateOptions(log4cxx::helpers::Pool&);
@@ -134,7 +95,7 @@
*/
virtual void subAppend(const spi::LoggingEventPtr& event,
log4cxx::helpers::Pool& p);
- public:
+ protected:
RollingPolicyPtr getRollingPolicy() const;
@@ -150,7 +111,7 @@
void setTriggeringPolicy(const TriggeringPolicyPtr& policy);
-
+ public:
/**
* Close appender. Waits for any asynchronous file compression
actions to be completed.
*/
@@ -185,7 +146,79 @@
void incrementFileLength(size_t increment);
};
+
+ /**
+ * <code>RollingFileAppender</code> extends [EMAIL PROTECTED]
FileAppender} to backup the log files
+ * depending on [EMAIL PROTECTED] RollingPolicy} and [EMAIL PROTECTED]
TriggeringPolicy}.
+ * <p>
+ * To be of any use, a <code>RollingFileAppender</code> instance must
have both
+ * a <code>RollingPolicy</code> and a <code>TriggeringPolicy</code>
set up.
+ * However, if its <code>RollingPolicy</code> also implements the
+ * <code>TriggeringPolicy</code> interface, then only the former needs
to be
+ * set up. For example, [EMAIL PROTECTED] TimeBasedRollingPolicy} acts
both as a
+ * <code>RollingPolicy</code> and a <code>TriggeringPolicy</code>.
+ *
+ * <p><code>RollingFileAppender</code> can be configured
programattically or
+ * using [EMAIL PROTECTED] org.apache.log4j.joran.JoranConfigurator}.
Here is a sample
+ * configration file:
+
+ <pre><?xml version="1.0" encoding="UTF-8" ?>
+ <!DOCTYPE log4j:configuration>
+
+ <log4j:configuration debug="true">
+
+ <appender name="ROLL"
class="org.apache.log4j.rolling.RollingFileAppender">
+ <b><rollingPolicy
class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
+ <param name="FileNamePattern"
value="/wombat/foo.%d{yyyy-MM}.gz"/>
+ </rollingPolicy></b>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <root">
+ <appender-ref ref="ROLL"/>
+ </root>
+
+ </log4j:configuration>
+ </pre>
+
+ *<p>This configuration file specifies a monthly rollover schedule
including
+ * automatic compression of the archived files. See
+ * [EMAIL PROTECTED] TimeBasedRollingPolicy} for more details.
+ *
+ *
+ *
+ *
+ * */
+ class LOG4CXX_EXPORT RollingFileAppender : public
RollingFileAppenderSkeleton {
+ DECLARE_LOG4CXX_OBJECT(RollingFileAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RollingFileAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(RollingFileAppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ public:
+ RollingFileAppender();
+
+ using RollingFileAppenderSkeleton::getRollingPolicy;
+
+ using RollingFileAppenderSkeleton::getTriggeringPolicy;
+
+ /**
+ * Sets the rolling policy. In case the 'policy' argument also
implements
+ * [EMAIL PROTECTED] TriggeringPolicy}, then the triggering policy
for this appender
+ * is automatically set to be the policy argument.
+ * @param policy
+ */
+ using RollingFileAppenderSkeleton::setRollingPolicy;
+
+ using RollingFileAppenderSkeleton::setTriggeringPolicy;
+
+ };
+ LOG4CXX_PTR_DEF(RollingFileAppenderSkeleton)
LOG4CXX_PTR_DEF(RollingFileAppender)
}
Modified: logging/log4cxx/trunk/src/main/include/log4cxx/rollingfileappender.h
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rollingfileappender.h?rev=628358&r1=628357&r2=628358&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/rollingfileappender.h
(original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/rollingfileappender.h Sat
Feb 16 08:55:53 2008
@@ -28,7 +28,7 @@
{
/** RollingFileAppender extends FileAppender to backup the log files when
they reach a certain size. */
- class LOG4CXX_EXPORT RollingFileAppender : public
log4cxx::helpers::ObjectImpl, public Appender
+ class LOG4CXX_EXPORT RollingFileAppender : public
log4cxx::rolling::RollingFileAppenderSkeleton
{
private:
/** The default maximum file size is 10MB. */
@@ -37,8 +37,6 @@
/** There is one backup file by default. */
int maxBackupIndex;
- log4cxx::rolling::RollingFileAppenderPtr rfa;
-
public:
//
// Use custom class to use non-default name to avoid
@@ -46,13 +44,10 @@
DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS( RollingFileAppender,
ClassRollingFileAppender )
BEGIN_LOG4CXX_CAST_MAP()
LOG4CXX_CAST_ENTRY( RollingFileAppender )
- LOG4CXX_CAST_ENTRY( Appender )
- LOG4CXX_CAST_ENTRY( spi::OptionHandler)
+ LOG4CXX_CAST_ENTRY_CHAIN(
log4cxx::rolling::RollingFileAppenderSkeleton )
END_LOG4CXX_CAST_MAP()
/** The default constructor simply calls its [EMAIL PROTECTED]
FileAppender#FileAppender parents constructor}. */
RollingFileAppender();
- void addRef() const;
- void releaseRef() const;
/**
Instantiate a RollingFileAppender and open the file
designated by
@@ -78,17 +73,6 @@
/** Get the maximum size that the output file is allowed to reach before
being rolled over to backup files. */
long getMaximumFileSize() const;
- /**
- Implements the usual roll over behaviour.
-
- <p>If <code>MaxBackupIndex</code> is positive, then files
{<code>File.1</code>, ..., <code>File.MaxBackupIndex -1</code>}
- are renamed to {<code>File.2</code>, ...,
<code>File.MaxBackupIndex</code>}. Moreover, <code>File</code> is
- renamed <code>File.1</code> and closed. A new <code>File</code> is
created to receive further log output.
-
- <p>If <code>MaxBackupIndex</code> is equal to zero, then the
<code>File</code> is truncated with no backup files created.
- */
- // synchronization not necessary since doAppend is alreasy synched
- void rollOver();
/**
Set the maximum number of backup files to keep around.
@@ -118,135 +102,6 @@
/** Prepares RollingFileAppender for use. */
void activateOptions( log4cxx::helpers::Pool & pool );
-
- /**
- Add a filter to the end of the filter list.
-
-
- */
- void addFilter( const log4cxx::spi::FilterPtr & newFilter );
-
- /**
- Returns the head Filter. The Filters are organized in a linked list and
- so all Filters on this Appender are available through the result.
-
- @return the head Filter or null, if no Filters are present
-
-
- */
- log4cxx::spi::FilterPtr getFilter() const;
-
- /**
- Clear the list of filters by removing all the filters in it.
-
-
- */
- void clearFilters();
-
- /**
- Release any resources allocated within the appender such as file handles,
network connections, etc.
-
- <p> It is a programming error to append to a closed appender. </p>
-
-
- */
- void close();
-
- /**
- Is this appender closed?
-
-
- */
- bool isClosed() const;
-
- /**
- Is this appender in working order?
-
-
- */
- bool isActive() const;
-
- /**
- Log in <code>Appender</code> specific way. When appropriate, Loggers will
- call the <code>doAppend</code> method of appender implementations in
order to log.
- */
- void doAppend( const log4cxx::spi::LoggingEventPtr& event,
log4cxx::helpers::Pool& p );
-
- /** Get the name of this appender. The name uniquely identifies the
appender. */
- LogString getName() const;
-
- /**
- Set the [EMAIL PROTECTED] Layout} for this appender.
-
-
- */
- void setLayout( const LayoutPtr & layout );
-
- /**
- Returns this appenders layout.
-
-
- */
- LayoutPtr getLayout() const;
-
- /**
- Set the name of this appender. The name is used by other components to
identify this appender.
-
-
- */
- void setName( const LogString & name );
-
-
- /**
- The <b>File</b> property takes a string value which should be the name
of the file to append to.
-
- <p><font color="#DD0044"><b>Note that the special values "System.out" or
"System.err" are no longer honored.</b></font>
-
- <p>Note: Actual opening of the file is made when [EMAIL PROTECTED]
#activateOptions} is called, not when the options are set.
- */
- void setFile( const LogString & file );
-
- /** Returns the value of the <b>Append</b> option. */
- bool getAppend() const;
-
- /** Returns the value of the <b>File</b> option. */
- LogString getFile() const;
-
- /**
- Get the value of the <b>BufferedIO</b> option.
-
- <p>BufferedIO will significatnly increase performance on heavily loaded
systems.
-
- */
- bool getBufferedIO() const;
-
- /** Get the size of the IO buffer. */
- int getBufferSize() const;
-
- /**
- The <b>Append</b> option takes a boolean value. It is set to
- <code>true</code> by default. If true, then <code>File</code>
- will be opened in append mode by [EMAIL PROTECTED] #setFile setFile}
(see above). Otherwise, [EMAIL PROTECTED] #setFile setFile} will open
- <code>File</code> in truncate mode.
-
- <p>Note: Actual opening of the file is made when [EMAIL PROTECTED]
#activateOptions} is called, not when the options are set.
- */
- void setAppend( bool flag );
-
- /**
- The <b>BufferedIO</b> option takes a boolean value. It is set to
- <code>false</code> by default. If true, then <code>File</code>
- will be opened and the resulting [EMAIL PROTECTED] java.io.Writer}
wrapped around a [EMAIL PROTECTED] java.io.BufferedWriter}.
-
- BufferedIO will significatnly increase performance on heavily loaded
systems.
-
- */
- void setBufferedIO( bool bufferedIO );
-
- /** Set the size of the IO buffer. */
- void setBufferSize( int bufferSize );
-
- bool requiresLayout() const;
}; // class RollingFileAppender
LOG4CXX_PTR_DEF(RollingFileAppender)