Sorry for my English
Library 0.3.4b.
Base class log4cpp::Category
virtual void addAppender (Appender
*appender) throw (std::invalid_argument)
Derived class log4cpp::FixedContextCategory:
public log4cpp::Category
virtual void addAppender (Appender
*appender) throw ()
addAppender’s firm is different. Sun CC 5.3 marks
it an error on this method.
I suggest:
1) file FixedContextCategory.cpp, line 47:
<- void FixedContextCategory::addAppender
(Appender* appender) throw() {
+> void FixedContextCategory::addAppender
(Appender* appender) throw(std::invalid_argument) {
// XXX do nothing for now
}
2) file FixedContextCategory.hh, line80:
<- virtual void addAppender(Appender*
appender) throw();
+> virtual void addAppender(Appender*
appender) throw(std::invalid_argument) ;
Best Regards.
Logged In: YES
user_id=628773
Hi
I have solved the problem. I was declaring my Category as
follows:
class A {
private:
static Category& log;
};
Category& A::log = Category::getInstance( "A" );
It seems that the static object was being initialised too
early. My solution is as follows:
class A {
private:
static Category* log;
};
Category* A::log = NULL;
A::A() {
if( log == NULL ) {
log = &Category::getInstance( "A" );
{
}
Best Regards.