Hi,

First off, let me say that we've been using log4cxx for some years now with great success. Its a wonderful library that really helps with debugging and supporting code. Ive been using the log4cxx 0.10.0, but upgraded to the svn trunk (r1755031) last week after having issues with SocketHubAppenders. Now Im getting problems with my valgrind tests.

I get tons of valgrind errors (112 to be exact), either starting at log4cxx::Logger::getLogger() or log4cxx::xml::DOMConfigurator::configure(). I feel like I'm missing some cleanup function, but log4cxx::xml::DOMConfigurator::configure() and log4cxx::xml::DOMConfigurator::resetConfiguration() are the only ones I can find and none help. I'm sure I've missed something, but can't seem to find out what. Please help me if anyone can see my error.

Here's a minimal example:

C++ code:

#include <log4cxx/xml/domconfigurator.h>
#include <log4cxx/logger.h>
#include <log4cxx/logmanager.h>
#include <iostream>

using namespace log4cxx;
using namespace std;

int main() {
log4cxx::xml::DOMConfigurator::configure("logging.xml");

    LoggerPtr logger = Logger::getLogger("a.b");
    LOG4CXX_INFO(logger, "asdf");
    LOG4CXX_FATAL(logger, "asdf");
    cout << "asdf" << endl;

    log4cxx::LogManager::shutdown();
    log4cxx::LogManager::resetConfiguration();

    return 0;
}


logging.xml contents:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";
        debug="false" threshold="trace">
    <appender name="FileOut" class="org.apache.log4j.FileAppender">
        <layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %p %F:%L %c - %m%n" />
        </layout>
        <param name="File" value="out.log" />
        <param name="Append" value="true" />
        <param name="Threshold" value="trace" />
    </appender>

    <root>
        <appender-ref ref="FileOut" />
        <level value="debug" />
    </root>
</log4j:configuration>


Built using:
#uname -r
3.12-0.bpo.1-amd64

#g++ --version
g++ (Debian 4.4.5-8) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Thank you in advance
Peter

Reply via email to