log4cxx: попытаться / поймать не будет работать на DOMConfigurator::configure

Что ж, я только что написал простую программу-регистратор с log4cxx lib, пока она работает нормально, но потом я понял, что обработка исключений работает не так, как я ожидал:

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

using namespace std;

using namespace log4cxx;
using namespace log4cxx::xml;
using namespace log4cxx::helpers;

int main(int argc, char *argv[])
{

  /* some code here ... */

  try
  {
     DOMConfigurator::configure("/path/to/logcfg.xml");
  }
  catch (Exception&)
  {
    cout << "error: problem in reading log config file" << endl;
    /* here I want to free up some objects! */
    exit(EXIT_FAILURE);
  }

}

Итак, теперь допустим, что logcfg.xml не существует, программа распечатает это сообщение и завершит работу:

log4cxx: Could not open file [/wrong/path/to/logcfg.xml].

Как мне кажется, он никогда не доходил до моего обработчика исключений, но создавался и обрабатывался в самой библиотеке. Не могли бы вы сказать мне, как правильно обращаться с таким делом?

Спасибо

0 ответов

Другие вопросы по тегам