How to write from Java to the Windows Event Log?

2019-01-22 19:21发布

How can I write from Java to the Windows Event Log?

4条回答
ゆ 、 Hurt°
2楼-- · 2019-01-22 19:31

Log4J is a Java-based logging utility. The class NTEventLogAppender can be used to "append to the NT event log system". See the documentation here:

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

Edit: There is a newer version, Log4j 2 "that provides significant improvements over its predecessor."

查看更多
聊天终结者
3楼-- · 2019-01-22 19:33

You can use JNA to write to the Event Log directly without the need of any native DLLs. See Advapi32 and Advapi32Util classes for various event log methods (ships since JNA 3.2.8).

If you're using Log4j, consider Log4jna instead of NTEventLogAppender.

查看更多
Deceive 欺骗
4楼-- · 2019-01-22 19:35

Back in 2001 JavaWorld published an article on how to write messages to the Windows NT Event Log. Or, you can take a look at the Log4j NTEventLogAppender class.

查看更多
我只想做你的唯一
5楼-- · 2019-01-22 19:51

You can also use the eventcreate command on Windows XP Pro and above.

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

Runtime.getRuntime().exec(command);

For XP home and lower, you could create a vbs application that writes using the wscript.shell.eventcreate method. However you sacrifice the ability to specify source.

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

查看更多
登录 后发表回答