On Dec 8, 2004, at 10:12 PM, Barak Simon wrote:
Hi, I need to extend LoggingEvent to set some extra information in it, but it seems that despite being stated in its doco: "This class is of concern to those wishing to extend log4cxx",
the destructor is not virtual!
I know that extending it and instantiating it in a customised Logger class will break at present the SocketAppender,
but am willing to take that risk, hoping the SocketAppender future implementation will have a less strict format.
Is there any chance the next release will virtualise the LoggingEvent destructor?
Many thanks, Barak _____
I don't believe that LoggingEvent has any virtual functions (other than those inherited from ObjectImpl) and is not designed for extension. Item 15 in Effective Java is "Design and document for inheritance or prohibit it". LoggingEvent is not designed or documented for inheritance (and intentionally so). There isn't the C++ equivalent of declaring LoggingEvent as "final", but if there were I would.
You can "extend" LoggingEvent by adding strings to the mapped diagnostic context, but I assume that isn't satisifactory. If you'd want to discuss your use cases, maybe we could find some maintainable approach.
