log4tango  4.0.3
RollingFileAppender.hh
Go to the documentation of this file.
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