00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _LOG4CPP_APPENDERSKELETON_HH
00011 #define _LOG4CPP_APPENDERSKELETON_HH
00012
00013 #include <log4cpp/Portability.hh>
00014 #include <log4cpp/Appender.hh>
00015 #include <log4cpp/Filter.hh>
00016
00017 namespace log4cpp {
00018
00024 class LOG4CPP_EXPORT AppenderSkeleton : public Appender {
00025 protected:
00031 AppenderSkeleton(const std::string& name);
00032
00033 public:
00037 virtual ~AppenderSkeleton();
00038
00043 virtual void doAppend(const LoggingEvent& event);
00044
00050 virtual bool reopen();
00051
00056 virtual void close() = 0;
00057
00063 virtual bool requiresLayout() const = 0;
00064
00069 virtual void setLayout(Layout* layout) = 0;
00070
00077 virtual void setThreshold(Priority::Value priority);
00078
00083 virtual Priority::Value getThreshold();
00084
00088 virtual void setFilter(Filter* filter);
00089
00094 virtual Filter* getFilter();
00095
00096 protected:
00102 virtual void _append(const LoggingEvent& event) = 0;
00103
00104
00105 private:
00106 Priority::Value _threshold;
00107 Filter* _filter;
00108 };
00109 }
00110
00111 #endif // _LOG4CPP_APPENDERSKELETON_HH