我没用过,但是看到过:log4j org.apache.log4j.nt.NTEventLogAppender Append to the NT event log system. WARNING This appender can only be installed and used on a Windows system. Do not forget to place NTEventLogAppender.dll, NTEventLogAppender.amd64.dll, NTEventLogAppender.ia64.dll or NTEventLogAppender.x86.dll as appropriate in a directory that is on the PATH of the Windows system. Otherwise, you will get a java.lang.UnsatisfiedLinkError.
就是用其他语言生成一个DLL
然后JAVA再去调用
http://mopishv0.blog.163.com/blog/static/54455932200992665324535/
但这就无法跨平台了
如果不是非得用JAVA
其实干脆直接用DELPHI或者VC好了
首先要看你的运行平台,如果java程序运行在web上或者没有运行在你要写入日志的服务器上时,在待写入日志的windows服务器上创建脚本程序。就是windows的那个vbs或者wsh脚本,脚本接受参数为要写入的日志信息。
脚本核心内容如下:Set WshShell = WScript.CreateObject("WScript.Shell")
strCommand = "eventcreate /T Error /ID 100 /L Scripts /D " & _
Chr(34) & "Test event." & Chr(34)
WshShell.Run strcommand其中 "Test event." 是你要写入的日志内容,你可以通过修改参数来达到日志的级别问题,比如错误日志等等。之后在java中考虑上面脚本的存放位置等等因素,最后完成功能上的要求。如果你要连接多台windows并且写入日志,考虑具体情况,分析下,看看能不能用一个vbs来实现,如果可能的话,尽量保持vbs是一个,减少以后维护修改的工作量。
上述脚本需求在windows的WSH可以使用的环境下才可以正常工作,如果你想要用的话,事先确认一下比较好。否则最后因为安全等因素禁用掉了这个WSH功能,你的代码就无法实现了。
Append to the NT event log system. WARNING This appender can only be installed and used on a Windows system. Do not forget to place NTEventLogAppender.dll, NTEventLogAppender.amd64.dll, NTEventLogAppender.ia64.dll or NTEventLogAppender.x86.dll as appropriate in a directory that is on the PATH of the Windows system. Otherwise, you will get a java.lang.UnsatisfiedLinkError.
log4j有这个功能。。呵呵,没注意过不知道,不过如果有这个功能的话,比自己做起来简单多了,如果项目的限制上允许用这个的话,用这个最好了。