00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_LOG_LOGMEDIAFILEROTATE_
00020 #define _SWORD_LOG_LOGMEDIAFILEROTATE_
00021
00022 #include "sword/log.LogMedia.h"
00023 #include "sword/streams.OStorageFile.h"
00024 #include <fstream>
00025
00026 namespace sword {
00027
00029
00033 class SWORDDECL LogMediaFileRotate : public LogMedia {
00034 public:
00035 LogMediaFileRotate(const std::string &fileName, const std::string ×tampFileFormat, const std::string ×tampFormat);
00036 virtual ~LogMediaFileRotate();
00037
00038 virtual void onLog(const Log::Entry &entry);
00039
00040 private:
00041 std::ofstream ofs_;
00042 int day_;
00043 std::string fileName_;
00044 std::string timestampFileFormat_;
00045 std::string timestampFormat_;
00046 ACE_Thread_Mutex mutex_;
00047
00048 void openFile_(bool firstTime);
00049 void closeFile_();
00050 };
00051
00052 }
00053
00054 #include "sword.private/log.logMediaFileRotate.inl"
00055
00056 #endif // _SWORD_LOG_LOGMEDIAFILEROTATE_