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

我怎样才能从Java写入Windows事件日志?

Solutions Collecting From Web of "如何从Java写入Windows事件日志?"

Log4J是一个基于Java的日志记录工具。 NTEventLogAppender类可以用来“附加到NT事件日志系统”。 请参阅这里的文档:

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

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

您可以使用JNA直接写入事件日志,而不需要任何本地DLL。 查看Advapi32和Advapi32Util类的各种事件日志方法(自JNA 3.2.8以来的船舶)。

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

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

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

 String command = "eventcreate " + " /l APPLICATION" + " /so \"" + applicationObjectName + "\"" + " /t " + lvl + " /id " + id + " /d \"" + description + "\""; Runtime.getRuntime().exec(command); 

对于XP home和更低版本,您可以创建一个使用wscript.shell.eventcreate方法写入的vbs应用程序。 但是你牺牲了指定源代码的能力。

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