首先,让我感谢 log4cplus 源代码。
我面临一个问题如下:
我想做什么?我想将消息记录到 Windows 上的事件日志中。
我做了什么?我可以通过包含以下 .h 来启用事件日志记录
#include <log4cplus/nteventlogappender.h>
并按如下方式创建附加程序:
SharedAppenderPtr append_3(new NTEventLogAppender(LOG4CPLUS_TEXT("127.0.0.1"), LOG4CPLUS_TEXT("log"), LOG4CPLUS_TEXT("source")));
append_3->setName(LOG4CPLUS_TEXT("ToEventlog"));
Logger to_eventlog = Logger::getInstance(LOG4CPLUS_TEXT("to_eventlog"));
to_eventlog.addAppender(append_3);
to_eventlog.setLogLevel(log4cplus::ALL_LOG_LEVEL);
并记录为
Logger to_eventlog = Logger::getInstance(LOG4CPLUS_TEXT("to_eventlog"));
LOG4CPLUS_FATAL(to_eventlog, “Test Message.”);
当我记录消息时,我在事件日志中得到以下信息:
找不到来自源的事件 ID 4096 的描述。引发此事件的组件未安装在本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复组件。
如果事件起源于另一台计算机,则显示信息必须与事件一起保存。
活动中包含以下信息:
测试消息。
消息资源存在,但在字符串/消息表中找不到消息
我尝试创建一个名为 NTEventLogAppender.dll 的 dll,其中包含字符串表资源和 id 为 4096 的字符串(在 log4cplus 中的 nteventlogappender.cxx 文件中硬编码),并使用仅资源 dll (/NOENTRY) 对其进行编译,但我仍然不断超越错误。
我已经尝试向 log4cplus-devel@lists.sourceforge.net 提问,但还没有得到任何答案。
任何有关如何创建此 dll 的帮助将不胜感激。
谢谢。