我正在启动一个OpenGL引擎,使用SFML作为上下文和输入管理器,使用GLSDK加载OpenGL(以及现在不重要的图像和事物)和Boost用于其他一些事情.
我一直想知道"日志记录"的想法,并尝试了Boost.Log(未能编译示例,并且唯一的问题参考未解决),Log4CPP(在启动时出错)最后一切似乎都是使用easylogging ++很好,是一个只有标题的库(horray!),它有一些巧妙的语法IMO.
但是在编译时会出现一堆错误:
C2664:'el :: base :: utils :: DateTime :: gettimeofday':无法将参数1从'int*'转换为'el :: base :: utils :: timeval*'
C2228:'.tv_usec'的左边必须有class/struct/union
我用这种方式实现了它:
'helpers.Log.cpp':'_ INITIALIZE_EASYLOGGINGPP'并实现init(),如下所示:
el::Configurations conf("../log_config.cfg");
el::Loggers::reconfigureLogger("default", conf);
el::Loggers::reconfigureAllLoggers(conf);
Run Code Online (Sandbox Code Playgroud)现在,只有这两个文件处理日志记录.'engine.Core.hpp'包括'helpers.Log.hpp','engine.Boot.hpp'(现在空白),'glload/gl_load.hpp','glload/gl_3_3.hpp'以及在'的构造函数中核心类,在引擎名称空间内,调用init()函数.
整个应用程序中没有其他任何操作.就是这样,日志系统的初始化,但它完全失败了.
系统信息
操作系统:Windows 7 x64
IDE:Visual Studio 2012
编译器: VS2012(v110)
COMPILE COMMAND:cl/c/IF:/ BTSync/prog_projs/KINGDOMS/trunk/inc/IF:/ dev/SFML/21/include/IF:/ dev/GLSDK/052/glload/include/IF:/ dev/GLSDK/052/glutil/include/IF:/ dev/GLSDK/052/glm/IF:/ dev/GLSDK/052/glmesh/include/IF:/ dev/GLSDK/052/glimage/include/IF:/ dev/BOOST/154/IF:/ DEV/LIBROCKET/121_3/include/Zi/nologo-/W3/WX-/Od/Ob0/Oy-/D WIN32/D …
我最近在我的C++应用程序中采用了Easylogging ++,并且遇到了我希望只是文档遗漏的东西.
我希望每次启动应用程序时都清除我的日志文件,而不是从以前的应用程序实例添加日志事件.我意识到我可以在任何日志记录事件之前在启动时删除日志文件,但这看起来像是一个黑客.
任何帮助,将不胜感激.谢谢.