1 /* 2 * RollingFileAppender.hh 3 * 4 * See the COPYING file for the terms of usage and distribution. 5 */ 6 7 #ifndef _LOG4SHIB_ROLLINGFILEAPPENDER_HH 8 #define _LOG4SHIB_ROLLINGFILEAPPENDER_HH 9 10 #include <log4shib/Portability.hh> 11 #include <log4shib/FileAppender.hh> 12 #include <string> 13 #include <stdarg.h> 14 15 namespace log4shib { 16 17 /** 18 RollingFileAppender is a FileAppender that rolls over the logfile once 19 it has reached a certain size limit. 20 @since 0.3.1 21 **/ 22 class LOG4SHIB_EXPORT RollingFileAppender : public FileAppender { 23 public: 24 RollingFileAppender(const std::string& name, 25 const std::string& fileName, 26 size_t maxFileSize = 10*1024*1024, 27 unsigned int maxBackupIndex = 1, 28 bool append = true, 29 mode_t mode = 00644); 30 31 virtual void setMaxBackupIndex(unsigned int maxBackups); 32 virtual unsigned int getMaxBackupIndex() const; 33 virtual void setMaximumFileSize(size_t maxFileSize); 34 virtual size_t getMaxFileSize() const; 35 36 virtual void rollOver(); 37 38 protected: 39 virtual void _append(const LoggingEvent& event); 40 41 unsigned int _maxBackupIndex; 42 size_t _maxFileSize; 43 }; 44 } 45 46 #endif // _LOG4SHIB_ROLLINGFILEAPPENDER_HH 47