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].
Как мне кажется, он никогда не доходил до моего обработчика исключений, но создавался и обрабатывался в самой библиотеке. Не могли бы вы сказать мне, как правильно обращаться с таким делом?
Спасибо