如何从Java写入Windows事件日志?
如何从Java写入Windows事件日志?Log4J是一个基于Java的日志实用程序。类如何从Java写入Windows事件日志?,java,windows,logging,event-log,Java,Windows,Logging,Event Log,如何从Java写入Windows事件日志?Log4J是一个基于Java的日志实用程序。类NTEventLogAppender可用于“附加到NT事件日志系统”。请参阅此处的文档: 编辑:有一个较新的版本,“它比以前的版本提供了显著的改进。”早在2001年,JavaWorld就发表了一篇关于如何使用Log4j类的文章,或者,您可以看看Log4j类。您也可以在Windows XP Pro及更高版本上使用eventcreate命令 String command = "eventcreate "
NTEventLogAppender
可用于“附加到NT事件日志系统”。请参阅此处的文档:
编辑:有一个较新的版本,“它比以前的版本提供了显著的改进。”早在2001年,JavaWorld就发表了一篇关于如何使用Log4j类的文章,或者,您可以看看Log4j类。您也可以在Windows XP Pro及更高版本上使用eventcreate命令
String command = "eventcreate "
+ " /l APPLICATION"
+ " /so \"" + applicationObjectName + "\""
+ " /t " + lvl
+ " /id " + id
+ " /d \"" + description + "\"";
Runtime.getRuntime().exec(command);
对于XP home和更低版本,您可以创建一个vbs应用程序,该应用程序使用wscript.shell.eventcreate方法进行写入。但是,您牺牲了指定源的能力
例如:
您可以使用直接写入事件日志,而无需任何本机DLL。请参阅Advapi32和Advapi32Util类,了解各种事件日志方法(自JNA 3.2.8发布以来)
如果您使用的是Log4j,考虑NtVunLogAppEnter。< /P> Log4J是一个不错的选择,因为您的代码没有耦合到底层日志对象,并且它容易通过XML配置。NTEventLogAppender的最大问题是它需要一个本地DLL放置在您不希望的所有地方。Log4jNA已经被移动到,如果上面的链接停止工作。如何定义applicationObjectName、lvl等