我正在尝试使用 log4cplus 在 C++ 应用程序中实现日志记录。我能够成功构建/链接(我将 log4cplus.lib 添加到我的附加库并将 log4cplus.dll 复制到构建/outdir)
当我运行我的应用程序时,当它执行我的 Logger::getInstance 调用时出现以下异常:
LogTesterConsole.exe 中 0x75cad36f 处的未处理异常:Microsoft C++ 异常:std::bad_alloc 位于内存位置 0x0013ed8c..
我试过将调用放在 main() 例程之外和内部,结果相同。
有什么想法吗?
代码:-
#include "stdafx.h"
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/configurator.h>
using namespace log4cplus;
int _tmain(int argc, _TCHAR* argv[])
{
BasicConfigurator config;
config.configure();
Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("main"));
LOG4CPLUS_WARN(logger, LOG4CPLUS_TEXT("Hello, World!"));
return 0;
}
最佳答案
如果您在调试中构建应用程序,请确保链接到 lib4CplusD.lib 和 lib4CplusD.dll。同样,发布应用程序应该链接 aginst lib4cplus.lib 和 lib4cplus.dll 我遇到了同样的运行时错误,当我将调试应用程序链接到调试库时,问题就解决了。
关于c++ - Logger::getInstance 在 log4cplus 中导致 bad_alloc 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230326/