log4tango 4.0.3
|
00001 // 00002 // RollingFileAppender.hh 00003 // 00004 // Copyright (C) : 2000 - 2002 00005 // LifeLine Networks BV (www.lifeline.nl). All rights reserved. 00006 // Bastiaan Bakker. All rights reserved. 00007 // 00008 // 2004,2005,2006,2007,2008,2009,2010 00009 // Synchrotron SOLEIL 00010 // L'Orme des Merisiers 00011 // Saint-Aubin - BP 48 - France 00012 // 00013 // This file is part of log4tango. 00014 // 00015 // Log4ango is free software: you can redistribute it and/or modify 00016 // it under the terms of the GNU Lesser General Public License as published by 00017 // the Free Software Foundation, either version 3 of the License, or 00018 // (at your option) any later version. 00019 // 00020 // Log4tango is distributed in the hope that it will be useful, 00021 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 // GNU Lesser General Public License for more details. 00024 // 00025 // You should have received a copy of the GNU Lesser General Public License 00026 // along with Log4Tango. If not, see <http://www.gnu.org/licenses/>. 00027 00028 #ifndef _LOG4TANGO_ROLLINGFILEAPPENDER_H 00029 #define _LOG4TANGO_ROLLINGFILEAPPENDER_H 00030 00031 #include <log4tango/Portability.hh> 00032 #include <log4tango/FileAppender.hh> 00033 00034 namespace log4tango { 00035 00036 //----------------------------------------------------------------------------- 00037 // class RollingFileAppender (olls over the logfile) 00038 //----------------------------------------------------------------------------- 00039 class LOG4TANGO_EXPORT RollingFileAppender : public FileAppender 00040 { 00041 public: 00042 00043 RollingFileAppender(const std::string& name, 00044 const std::string& file_name, 00045 size_t max_fs = 10*1024*1024, 00046 unsigned int max_bi = 1, 00047 bool append = true, 00048 mode_t mode = 00644); 00049 00050 virtual void set_max_backup_index(unsigned int maxBackups); 00051 00052 virtual unsigned int get_max_backup_index() const; 00053 00054 virtual void set_maximum_file_size (size_t max_fs); 00055 00056 virtual size_t get_max_file_size() const; 00057 00058 virtual void roll_over(); 00059 00060 protected: 00061 00062 virtual int _append (const LoggingEvent& event); 00063 00064 unsigned int _max_backup_index; 00065 00066 size_t _max_file_size; 00067 }; 00068 00069 } // namespace log4tango 00070 00071 #endif // _LOG4TANGO_ROLLINGFILEAPPENDER_H