When calling native code from java the following works when making the native 
calls:

    BasicConfigurator::configure();
    LoggerPtr rootLogger = Logger::getRootLogger();

    LOG4CXX_DEBUG(rootLogger, "debug message");
    LOG4CXX_INFO(rootLogger, "info message");
    LOG4CXX_WARN(rootLogger, "warn message");
    LOG4CXX_ERROR(rootLogger, "error message");
    LOG4CXX_FATAL(rootLogger, "fatal message");


If I try setting appender and layout like:

    LoggerPtr rootLogger = Logger::getRootLogger();

        log4cxx::ConsoleAppenderPtr appender(new log4cxx::ConsoleAppender());
        log4cxx::LayoutPtr layout(new log4cxx::SimpleLayout());
    appender->setLayout(layout);
        log4cxx::helpers::Pool pool;
    appender->activateOptions(pool);
        rootLogger->addAppender(appender);
        LogManager::getLoggerRepository()->setConfigured(true);

    LOG4CXX_DEBUG(rootLogger, "debug message");
    LOG4CXX_INFO(rootLogger, "info message");
    LOG4CXX_WARN(rootLogger, "warn message");
    LOG4CXX_ERROR(rootLogger, "error message");
    LOG4CXX_FATAL(rootLogger, "fatal message");

I get memory could not be "written" Application error and JVM crashes.  The 
messages show up in proper format and all but after that what I get.



Any ideas?

Matt Zmuda
Software Developer - Tools Group
TVWorks - Platform Division, London, Canada
(519) 963-4304

Reply via email to