--- src/main/cpp/smtpappender.cpp 2008/07/28 16:09:10 +++ src/main/cpp/smtpappender.cpp 2008/07/28 16:12:43 @@ -576,10 +576,38 @@ DefaultEvaluator& operator=(const DefaultEvaluator&); }; // class DefaultEvaluator + class LOG4CXX_EXPORT SendAllEvaluator : + public virtual spi::TriggeringEventEvaluator, + public virtual helpers::ObjectImpl + { + public: + DECLARE_LOG4CXX_OBJECT(SendAllEvaluator) + BEGIN_LOG4CXX_CAST_MAP() + LOG4CXX_CAST_ENTRY(SendAllEvaluator) + LOG4CXX_CAST_ENTRY(spi::TriggeringEventEvaluator) + END_LOG4CXX_CAST_MAP() + + SendAllEvaluator(); + + /** + Is this event the e-mail triggering event? +

This method returns always true. This + evaluator may be used to send all log messages written + to specific logger. + */ + virtual bool isTriggeringEvent(const spi::LoggingEventPtr& event); + private: + SendAllEvaluator(const SendAllEvaluator&); + SendAllEvaluator& operator=(const SendAllEvaluator&); + }; // class SendAllEvaluator + + + } } IMPLEMENT_LOG4CXX_OBJECT(DefaultEvaluator) +IMPLEMENT_LOG4CXX_OBJECT(SendAllEvaluator) IMPLEMENT_LOG4CXX_OBJECT(SMTPAppender) DefaultEvaluator::DefaultEvaluator() { @@ -590,6 +618,14 @@ return event->getLevel()->isGreaterOrEqual(Level::getError()); } +SendAllEvaluator::SendAllEvaluator() { +} + +bool SendAllEvaluator::isTriggeringEvent(const spi::LoggingEventPtr& event) +{ + return true; +} + SMTPAppender::SMTPAppender() : smtpPort(25), bufferSize(512), locationInfo(false), cb(bufferSize), evaluator(new DefaultEvaluator())