Как написать с Java в журнал событий Windows? - PullRequest
21 голосов
/ 03 октября 2008

Как я могу писать с Java в журнал событий Windows?

Ответы [ 4 ]

24 голосов
/ 03 октября 2008

Log4J - утилита ведения журналов на основе Java. Класс NTEventLogAppender может использоваться для «добавления в систему журнала событий NT». Смотри документацию здесь:

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/nt/NTEventLogAppender.html

Редактировать: Существует более новая версия, Log4j 2", которая обеспечивает значительные улучшения по сравнению с предшественником."

8 голосов
/ 28 сентября 2010

Вы можете использовать JNA для прямой записи в журнал событий без необходимости использования каких-либо собственных DLL. См. Классы Advapi32 и Advapi32Util для различных методов регистрации событий (поставляется с JNA 3.2.8).

Если вы используете Log4j, рассмотрите Log4jna вместо NTEventLogAppender.

5 голосов
/ 07 февраля 2010

Вы также можете использовать команду eventcreate в Windows XP Pro и выше.

String command = "eventcreate "
               + " /l APPLICATION"
               + " /so \"" + applicationObjectName + "\""
               + " /t " + lvl
               + " /id " + id
               + " /d \"" + description + "\"";

Runtime.getRuntime().exec(command);

Для XP home и ниже вы можете создать приложение vbs, которое пишет с использованием метода wscript.shell.eventcreate. Однако вы жертвуете возможностью указать источник.

Пример: http://www.ozzu.com/mswindows-forum/posting-event-log-with-batch-files-t76791.html

5 голосов
/ 03 октября 2008

В 2001 году JavaWorld опубликовал статью о том, как записывать сообщения в журнал событий Windows NT. Или вы можете взглянуть на Log4j NTEventLogAppender класс.

...