00001 /* 00002 * AppenderSkeleton.hh 00003 * 00004 * Copyright 2001, LifeLine Networks BV (www.lifeline.nl). All rights reserved. 00005 * Copyright 2001, Bastiaan Bakker. All rights reserved. 00006 * 00007 * See the COPYING file for the terms of usage and distribution. 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 LOG4CPP_NS_BEGIN 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 private: 00109 // suppress assignment operator 00110 AppenderSkeleton & operator=(const AppenderSkeleton &); 00111 }; 00112 LOG4CPP_NS_END 00113 00114 #endif // _LOG4CPP_APPENDERSKELETON_HH