24

如何从 Java 写入 Windows 事件日志?

4

4 回答 4

24

Log4J 是一个基于 Java 的日志记录实用程序。该类NTEventLogAppender可用于“附加到 NT 事件日志系统”。请参阅此处的文档:

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

编辑:有一个较新的版本, Log4j 2,“它比其前身提供了重大改进。”

于 2008-10-02T22:27:30.813 回答
9

您可以使用JNA直接写入事件日志,而无需任何本机 DLL。有关各种事件日志方法(自 JNA 3.2.8 起提供),请参阅 Advapi32 和 Advapi32Util 类。

如果您使用的是 Log4j,请考虑使用Log4jna而不是 NTEventLogAppender。

于 2010-09-28T18:10:27.517 回答
5

早在 2001 年,JavaWorld 就发表了一篇关于如何将消息写入 Windows NT 事件日志的文章。或者,您可以查看 Log4j NTEventLogAppender类。

于 2008-10-02T22:28:33.807 回答
5

您还可以在 Windows XP Pro 及更高版本上使用 eventcreate 命令。

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

Runtime.getRuntime().exec(command);

对于 XP 家庭及更低版本,您可以创建一个使用 wscript.shell.eventcreate 方法编写的 vbs 应用程序。但是,您牺牲了指定来源的能力。

示例: http ://www.ozzu.com/mswindows-forum/posting-event-log-with-batch-files-t76791.html

于 2010-02-07T04:04:16.683 回答