项目需要往windows事件日志里面出log,用java如何实现啊,高手给指点一下。

解决方案 »

  1.   

    Windows 的事件日志允许应用程序往里面写东西?
      

  2.   

    从网上看到的资料来看好像是可以的,但是网上的没有说用java是怎么操作的
      

  3.   

    什么需求呀。日志还出到window事件日志里。
      

  4.   

    java操作wondiws的日记?  没听过!
      

  5.   

    只要 windows提供了API,  就可以实现, 用JNI做。
      

  6.   

    干嘛非要写到windows的日志里?程序自己写到自己的日志文件就行了么...........
      

  7.   

    客户有这样的需求啊,这是一个MQ通信的项目,客户要求有些消息往windows日志里面写
      

  8.   

    用JNI吧
    就是用其他语言生成一个DLL
    然后JAVA再去调用
    http://mopishv0.blog.163.com/blog/static/54455932200992665324535/
    但这就无法跨平台了
    如果不是非得用JAVA
    其实干脆直接用DELPHI或者VC好了
      

  9.   

    用java也是客户指定的,没办法改的
      

  10.   

    纯粹的java好像不能写入windows的系统日志。我做的时候,一般上是把java和其他语言的脚本绑定在一起。这个得看你的需求,如果你的程序中不允许其他语言或者使用的语言有一定的要求的话,下面的这个方法可能不会很适合你。
    首先要看你的运行平台,如果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功能,你的代码就无法实现了。
      

  11.   

    我没用过,但是看到过: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.
      

  12.   


    log4j有这个功能。。呵呵,没注意过不知道,不过如果有这个功能的话,比自己做起来简单多了,如果项目的限制上允许用这个的话,用这个最好了。
      

  13.   

    跟客户最后又确认了一下,可以用log4j,感谢大家的帮忙,结贴。