我怎么会去以固定的间隔备份Windows应用程序日志?
-
22-08-2019 - |
题
我与记录定期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
根据什么系统日志服务器使用,你可以设置过滤器来忽略一些事件或发送给不同的文件。您可以设置日志滚动,只要你喜欢。
不隶属于 StackOverflow