00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _LOG4TANGO_FILEAPPENDER_H
00029 #define _LOG4TANGO_FILEAPPENDER_H
00030
00031 #include <log4tango/Portability.hh>
00032 #include <log4tango/LayoutAppender.hh>
00033
00034 namespace log4tango {
00035
00036
00037
00038
00039 class LOG4TANGO_EXPORT FileAppender : public LayoutAppender
00040 {
00041 public:
00042
00052 FileAppender(const std::string& name, const std::string& fileName,
00053 bool append = true, mode_t mode = 00644);
00054
00060 FileAppender(const std::string& name, int fd);
00061
00065 virtual ~FileAppender();
00066
00074 virtual bool reopen (void);
00075
00079 virtual void close (void);
00080
00086 virtual bool is_valid (void) const;
00087
00096 virtual void set_append (bool append);
00097
00101 virtual bool get_append (void) const;
00102
00106 virtual void set_mode (mode_t mode);
00107
00111 virtual mode_t get_mode() const;
00112
00113 protected:
00114
00115 virtual int _append (const LoggingEvent& event);
00116
00117 const std::string _file_name;
00118 int _fd;
00119 int _flags;
00120 mode_t _mode;
00121 };
00122
00123 }
00124
00125 #endif // _LOG4TANGO_FILEAPPENDER_H