Я использую библиотеку log4cplus и не могу заставить работать логирование.
Я использую этот код:
PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log.properties"));
Logger g_logger = Logger::getInstance(LOG4CPLUS_TEXT("mylogger"));
LOG4CPLUS_WARN(g_logger, LOG4CPLUS_TEXT("test test test"));
И это ломается в LOG4CPLUS_WARN
с ошибкой:
Access violation reading location
Это мой стек вызовов:
msvcp110d.dll!std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >::egptr() Line 236 C++
ProjectClientd.exe!std::basic_stringbuf<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str() Line 103 C++
ProjectClientd.exe!std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str() Line 553 C++
> ProjectClientd.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Line 55 C++
ProjectClientd.exe!__tmainCRTStartup() Line 528 C
ProjectClientd.exe!wWinMainCRTStartup() Line 377 C
где wWinMain ... line 55
это место, где LOG4CPLUS_WARN
называется
Я проверил, что не так с этим basic_ostringstream
и кажется, что что-то напутано с кодировкой или чем-то вроде:
Неоконченная строка (нечитаемая память) и целая куча странных букв в конце моей строки? Что может вызвать это?
Вы решили свою проблему? У меня та же ошибка, и я заметил, что я связался с версией выпуска log4cplusU.dll, пока приложение было встроено в отладку, поэтому соединение с log4cplusUD.dll для конфигурации отладки решило мою проблему
Других решений пока нет …