Description
log4cxx currently has its own generic threading framework which has several substantial drawbacks:
The implementation forces the log4cxx build time config.h to appear in the <logger.h> and other header files.
Contains Solaris assembler that none of the current developers can support.
Windows threading implementation is neglected and gets stale readily.
Using Apache Portable Runtime (http://apr.apache.org) for threading appears to be desirable to eliminate those issues from our development. APR threading does appear to be conceptually similar with the currently used pthread which should hopefully ease migration.
An alternative would be to use Mozilla Portable Runtime, however unless there are unsurmountable technical issues with APR, keeping everything in the Apache family would appear to be desirable.
Addressing the Unicode issue would likely involve adding an APR dependency to use APR-iconv, so adding APR for threading should not raise substantial additional deployment issues.