Pergunta

Eu estou trabalhando com um aplicativo que toras para o Windows Application Log regularmente (visíveis através da ferramenta administrativa Visualizador de eventos), e eu estou procurando uma maneira de guardá-lo em uma base diária. Isto é importante porque, por vezes, descobrir um problema com a aplicação - e continuar a investigar informações que precisamos que foi registrado há uma semana. Os acontecimentos que estamos procurando não são necessariamente ainda ao redor ... Eu tentei aumentar o tamanho e tudo isso, mas eu acho que um backup automatizado facilitaria o processo. Nós não iria acabar com enormes troncos, mas sim, vários logs moderadamente porte.

eu preferem uma solução simples como arquivo de lote + do Windows Scheduler, mas também estaria interessado em outras abordagens.

Graças

Foi útil?

Solução

Aqui está um script WMI que eu achei um tempo atrás. Este poderia ser o que você está procurando!

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

Apenas set-up este script em uma tarefa agendada e você está pronto para ir!

Outras dicas

Você pode usar o Windows Management Instrumentation (WMI) para ler o log de eventos e fazer o que quiser com o resultado. Aqui está um artigo que você pode ser capaz de ajustar a seus propósitos.

Saída todos os eventos no canal de Aplicação, para XML:

wevtutil.exe qe application

Para a saída de texto legível, use:

wevtutil.exe qe application /f:text

Você poderia facilmente tubo de qualquer uma destas saídas para um arquivo periodicamente para backup.

Você pode querer considerar a criação de uma das ferramentas para encaminhar eventos do Windows para um servidor syslog. Então, em vez de ter que executar um processo que faz o backup que você vai ter todas as entradas de log encaminhados para um segundo local quase ao mesmo tempo eles são adicionados ao log de eventos do Windows.

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

Dependendo do que servidor syslog você usa você pode filtros de configuração para ignorar alguns eventos ou enviá-los para diferentes arquivos. Você pode log configuração rolando no entanto você gosta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top