Во-первых, позвольте мне поблагодарить за исходный код 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.”);
Когда я регистрирую сообщение, я получаю следующее в журнале событий:
Описание для идентификатора события 4096 из исходного источника не может быть найдено.Либо компонент, который вызывает это событие, не установлен на локальном компьютере, либо установка повреждена.Вы можете установить или восстановить компонент на локальном компьютере.
Если событие возникло на другом компьютере, отображаемая информация должна была быть сохранена вместе с событием.
Следующая информация была включена всобытие:
тестовое сообщение.
ресурс сообщения присутствует, но сообщение не найдено в таблице строк / сообщений
Я пытался создать dll симя NTEventLogAppender.dll с ресурсом таблицы строк и строкой с идентификатором 4096 (жестко задано в файле nteventlogappender.cxx в log4cplus) и скомпилировано с использованием только ресурсов dll (/ NOENTRY), но я все еще продолжаю получать ошибку выше.
Я уже пробовал вопрос к log4cplus-devel@lists.sourceforge.net, но пока не получил никакого ответа.
Любая помощь о том, как создать эту DLL, будет принята с благодарностью.
Спасибо.