Hi, I am using the latest log4cxx library (0.10.0) on Debian (log4cxx10-dev) and find that any application I use with this library will result in the following valgrind errors: http://pastebin.com/ypt4ZH4i
If I strip log4cxx out of the source and re-run valgrind, it will pass without any errors. Am I using the library wrong or is there an issue with the underlying implementation? Sample usage: void Log::toConsole(Level level) { log4cxx::ConsoleAppenderPtr consoleAppender(new log4cxx::ConsoleAppender()); consoleAppender->setLayout(new log4cxx::PatternLayout(LOG_OUTPUT_FORMAT)); log4cxx::helpers::Pool pool; consoleAppender->activateOptions(pool); consoleAppender->setThreshold(LOG_LEVEL_LOOKUP[level]); log4cxx::Logger::getRootLogger()->addAppender(consoleAppender); } void Log::toFile(std::string log_path, Level level, bool append, bool rotate, unsigned int max_backups, int max_size) { if (log_path.empty()) throw LoggerException("Log filepath cannot be empty."); if (rotate) { log4cxx::RollingFileAppenderPtr rollingFileAppender(new log4cxx::RollingFileAppender()); rollingFileAppender->setLayout(new log4cxx::PatternLayout(LOG_OUTPUT_FORMAT)); rollingFileAppender->setFile(log_path); rollingFileAppender->setAppend(append); rollingFileAppender->setMaxBackupIndex(max_backups); rollingFileAppender->setMaximumFileSize(max_size); log4cxx::helpers::Pool pool; rollingFileAppender->activateOptions(pool); rollingFileAppender->setThreshold(LOG_LEVEL_LOOKUP[level]); log4cxx::Logger::getRootLogger()->addAppender(rollingFileAppender); } else { log4cxx::FileAppenderPtr fileAppender(new log4cxx::FileAppender()); fileAppender->setLayout(new log4cxx::PatternLayout(LOG_OUTPUT_FORMAT)); fileAppender->setFile(log_path); fileAppender->setAppend(append); fileAppender->setThreshold(LOG_LEVEL_LOOKUP[level]); log4cxx::Logger::getRootLogger()->addAppender(fileAppender); } } void Log::setLevel(Level level) { log4cxx::Logger::getRootLogger()->setLevel(LOG_LEVEL_LOOKUP[level]); }