如何从Java写入Windows事件日志?
x9ybnkn61#
编辑(2023年):参见JNA https://stackoverflow.com/a/3815771/3937
Log4J是一个基于Java的日志实用程序。类NTEventLogAppender可用于“附加到NT事件日志系统”。请参阅此处的文档:http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/nt/NTEventLogAppender.html
NTEventLogAppender
**编辑:**有一个较新的版本Log4j 2“,它比它的前身有了显著的改进。”
9vw9lbht2#
您可以使用JNA直接写入事件日志,而无需任何本地DLL。有关各种事件日志方法,请参见Advapi32和Advapi32Util类(自JNA 3.2.8起提供)。如果您使用的是Log4j,请考虑使用Log4jna而不是NTEventLogAppender。
2w2cym1i3#
您还可以在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
f3temu5u4#
早在2001年,JavaWorld就发表了一篇关于如何write messages to the Windows NT Event Log.的文章。或者,您可以看看Log4j NTEventLogAppender类。
4条答案
按热度按时间x9ybnkn61#
编辑(2023年):参见JNA https://stackoverflow.com/a/3815771/3937
旧答案
Log4J是一个基于Java的日志实用程序。类
NTEventLogAppender
可用于“附加到NT事件日志系统”。请参阅此处的文档:http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/nt/NTEventLogAppender.html
**编辑:**有一个较新的版本Log4j 2“,它比它的前身有了显著的改进。”
9vw9lbht2#
您可以使用JNA直接写入事件日志,而无需任何本地DLL。有关各种事件日志方法,请参见Advapi32和Advapi32Util类(自JNA 3.2.8起提供)。
如果您使用的是Log4j,请考虑使用Log4jna而不是NTEventLogAppender。
2w2cym1i3#
您还可以在Windows XP Pro及更高版本上使用eventcreate命令。
对于XP home和更低版本,你可以创建一个使用wscript.shell.eventcreate方法编写的vbs应用程序,但是你牺牲了指定源代码的能力。
示例:http://www.ozzu.com/mswindows-forum/posting-event-log-with-batch-files-t76791.html
f3temu5u4#
早在2001年,JavaWorld就发表了一篇关于如何write messages to the Windows NT Event Log.的文章。或者,您可以看看Log4j NTEventLogAppender类。