GrabBag/SDK/GenICam/library/CPP/include/log4cpp/RollingFileAppender.hh
2025-12-10 00:01:32 +08:00

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