我与记录定期Windows应用程序日志(通过事件查看器管理工具可视范围)的应用程序的工作,我正在寻找一种方式来支持它每天的基础上。并进一步调查,我们需要的是在一周前记录的信息 - 因为我们有时会发现与应用程序的问题,这是非常重要的。我们正在寻找的事件不一定仍然存在......我试着增加的大小和所有这一切,但我认为自动备份将促进这一进程。我们不会与巨大的日志,而是多个中等规模的日志结束了。

我会的喜欢的一个简单的解决方案类似的批处理文件+ Windows计划,但也有兴趣在其他方法。

由于

有帮助吗?

解决方案

下面是一个WMI脚本,我发现前一阵子。这可能是你想搜索的内容!

dim strComputer = "." 'Define here the Remote IP Address or Computername
dim objWMIService
dim colLogFiles
dim objLogfile
dim errBackupLog

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" &  strComputer & "\root\cimv2")

Call eventlogbackup("Application")
Call eventlogbackup("System")
Call eventlogbackup("Security")

Function eventlogbackup(logtype)

Set colLogFiles = objWMIService.ExecQuery ("SELECT * FROM Win32_NTEventLogFile WHERE LogFileName='" & logtype & "'")

For Each objLogfile in colLogFiles
 errBackupLog = objLogFile.BackupEventLog("\\server\eventlogs\" & strComputer & "\" &logtype & ".evt")
 If errBackupLog <> 0 Then
    Wscript.Echo "The " & logtype &" event log could not be backed up."
 Else
    objLogFile.ClearEventLog()
    Wscript.Echo "The " & logtype &" event log is backed up."
 End If
Next

End Function

刚建立这个脚本在预定的任务,你是好去!

其他提示

您可以使用Windows Management Instrumentation(WMI)来读取事件日志,做任何你,结果一样。这里有一个文章,你或许可以调整到你的目的。

输出在应用程序的信道的所有事件,以XML:

wevtutil.exe qe application

有关可读的文本输出,使用:

wevtutil.exe qe application /f:text

您可以很容易地要么这些输出以周期性地进行备份的文件的管。

您可能要考虑设置的工具之一窗口事件转发到syslog服务器。然后,而不必运行一个过程,它的备份,你会得到几乎所有在它们添加到Windows事件日志同时转发到第二位置的日志条目。

http://ntsyslog.sourceforge.net/ http://edoceo.com/creo/winlogd http://www.softpanorama.org/Logs/Syslog/syslog_for_windows.shtml

根据什么系统日志服务器使用,你可以设置过滤器来忽略一些事件或发送给不同的文件。您可以设置日志滚动,只要你喜欢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top