Пользовательские идентификаторы событий с использованием NTEventLogAppender

Это мой первый пост о ServerFault, но я люблю StackOverflow. Я кодер, и поэтому мне удобнее работать в IDE, чем в реестре, поэтому я пришел сюда за помощью.

Проблема: у меня есть цепочка регистраторов

CustomLogger (добавляет сообщение журнала с пользовательским EventId, который снова анализируется в NTEventLogAppender) -> slf4j -> log4j -> NTEventLogAppender

В конечном итоге журнал используется NTEventLogAppender, который я изменил, чтобы проанализировать добавленный EventID исходного сообщения из CustomLogger, и он отлично работает. Однако, когда сообщение генерируется с пользовательским EventID, оно говорит:

Описание для идентификатора события (blah) в Source ( Order Station Jetty Server Diag) не найдено. Локальный компьютер может не иметь необходимой информации реестра или файлов DLL сообщений для отображения сообщений с удаленного компьютера. Вы можете использовать флаг /AUXSOURCE=, чтобы получить это описание; см. Помощь и Поддержка для деталей. Следующая информация является частью мероприятия: 111219 [главная] ИНФОРМАЦИЯ

Мне нужно избавиться от этого консервированного сообщения в начале всех моих пользовательских сообщений регистрации.

Я отредактировал файл EventLogCategories.mc, чтобы отразить все новые коды, например так:

; example of new logging code
MessageId=0x45
Language=English
No logging code was given, using default logging code %1
.

и я запускаю файл build.bat, который генерирует файл NTEventLogAppender.dll, который я затем помещаю в соответствующий каталог и запускаю на нем regsvr32.

Я также посмотрел этот FAQ из Apache, http://logging.apache.org/log4j/1.2/faq.html, и скопировал NTEventLogAppender.dll в каталог%SYSTEMROOT%\SYSTEM32 безрезультатно.

Кроме того, я увидел это, https://issues.apache.org/bugzilla/show_bug.cgi?id=37866, а затем добавил компилятор сообщений Microsoft (mc.exe) и MinGW в системную переменную среды Path, перекомпилировал, скопировал и зарегистрировано... все безрезультатно.

Наконец, я попытался опубликовать сообщение на форуме Apache Logging-log4j-user (ссылка отредактирована, потому что я новый пользователь и более двух ссылок в сообщении запрещены), но адрес log4j-user@logging.apache.org просто отскочил ко мне.

У кого-нибудь есть идеи, где еще я могу пойти не так?

1 ответ

Решение

Решение: удалите ключи в реестре для NTEventLogAppender проекта, затем запустите build.bat из интерфейса командной строки VS2010 и скопируйте NTEventLogAppender в соответствующее расположение в папке проекта.

No need to involve mc.exe or rc.exe, no need to copy to the \System32 directory.

Другие вопросы по тегам