00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __WVLOGFILE_H
00009 #define __WVLOGFILE_H
00010
00011 #include "wvfile.h"
00012 #include "wvlogrcv.h"
00013
00016 class WvLogFileBase : public WvLogRcv, public WvFile
00017 {
00018 public:
00019 WvLogFileBase(WvStringParm _filename,
00020 WvLog::LogLevel _max_level = WvLog::NUM_LOGLEVELS);
00021
00022
00023 int fsync_every;
00024
00025 protected:
00026 WvLogFileBase(WvLog::LogLevel _max_level);
00027 virtual void _make_prefix(time_t now_sec);
00028 virtual void _mid_line(const char *str, size_t len);
00029 virtual void _end_line();
00030
00031 int fsync_count;
00032 };
00033
00034
00037 class WvLogFile : public WvLogFileBase
00038 {
00039 public:
00040 WvLogFile(WvStringParm _filename,
00041 WvLog::LogLevel _max_level = WvLog::NUM_LOGLEVELS,
00042 int _keep_for = 7, bool _force_new_line = false,
00043 bool _allow_append = true);
00044
00045 WvString start_log();
00046
00047 private:
00048 virtual void _make_prefix(time_t now_sec);
00049 int keep_for, last_day;
00050 WvString filename;
00051 bool allow_append;
00052
00053 public:
00054 const char *wstype() const { return "WvLogFileBase"; }
00055 };
00056
00057 #endif // __WVLOGFILE_H