54 lines
1.4 KiB
C++
54 lines
1.4 KiB
C++
|
|
/*
|
||
|
|
* RollingFileAppender.hh
|
||
|
|
*
|
||
|
|
* See the COPYING file for the terms of usage and distribution.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef _LOG4CPP_ROLLINGFILEAPPENDER_HH
|
||
|
|
#define _LOG4CPP_ROLLINGFILEAPPENDER_HH
|
||
|
|
|
||
|
|
#include <log4cpp/Portability.hh>
|
||
|
|
#include <log4cpp/FileAppender.hh>
|
||
|
|
#include <string>
|
||
|
|
#include <stdarg.h>
|
||
|
|
|
||
|
|
LOG4CPP_NS_BEGIN
|
||
|
|
|
||
|
|
/**
|
||
|
|
RollingFileAppender is a FileAppender that rolls over the logfile once
|
||
|
|
it has reached a certain size limit.
|
||
|
|
@since 0.3.1
|
||
|
|
**/
|
||
|
|
class LOG4CPP_EXPORT RollingFileAppender : public FileAppender {
|
||
|
|
public:
|
||
|
|
RollingFileAppender(const std::string& name,
|
||
|
|
const std::string& fileName,
|
||
|
|
size_t maxFileSize = 10 * 1024 * 1024,
|
||
|
|
unsigned int maxBackupIndex = 1,
|
||
|
|
bool append = true,
|
||
|
|
mode_t mode = 00644);
|
||
|
|
|
||
|
|
virtual void setMaxBackupIndex(unsigned int maxBackups);
|
||
|
|
virtual unsigned int getMaxBackupIndex() const;
|
||
|
|
virtual void setMaximumFileSize(size_t maxFileSize);
|
||
|
|
virtual size_t getMaxFileSize() const;
|
||
|
|
|
||
|
|
virtual void rollOver();
|
||
|
|
|
||
|
|
protected:
|
||
|
|
virtual void _append(const LoggingEvent& event);
|
||
|
|
|
||
|
|
unsigned int _maxBackupIndex;
|
||
|
|
unsigned short int _maxBackupIndexWidth; // keep constant index width by zeroing leading positions
|
||
|
|
|
||
|
|
size_t _maxFileSize;
|
||
|
|
private:
|
||
|
|
// suppress assignment operator
|
||
|
|
RollingFileAppender & operator=(const RollingFileAppender &);
|
||
|
|
|
||
|
|
};
|
||
|
|
LOG4CPP_NS_END
|
||
|
|
|
||
|
|
|
||
|
|
#endif // _LOG4CPP_ROLLINGFILEAPPENDER_HH
|