Ho utilizzato System.Diagnostics.EventLog per visualizzare i registri sul computer locale. Tuttavia, vorrei aprire un archivio del registro eventi salvato (.evt o .evtx) e visualizzare i registri contenuti nel file salvato. Devo solo visualizzare timestamp, messaggi, fonti, ecc. Associati ai log nel file. Questo può essere fatto in C#?Come aprire l'archivio del registro eventi salvato in .NET?
risposta
Verificare lo spazio dei nomi System.Diagnostics.Eventing.Reader
. In particolare la classe EventLogQuery
.
http://msdn.microsoft.com/en-us/library/bb671200(v=VS.90).aspx
Prova LogParser strumento da Microsoft. Può recuperare tutti i dati dai log di qualsiasi formato di registro utilizzando la lingua di selezione simile a SQL. Può anche essere utilizzato da qualsiasi applicazione .NET. L'esempio di analisi dei log CSV (credo che è possibile utilizzare questo codice per file EVT con piccole modifiche):
public IList<LogRow> GetLog()
{
return Load("SELECT *, OUT_ROW_NUMBER() FROM logfile*.log WHERE Field2='Performance' ORDER BY Field1 ASC");
}
private static IList<LogRow> Load(string sql)
{
IEnumerable<string[]> log = ParseLog(sql);
return Convert(log);
}
private static IList<LogRow> Convert(IEnumerable<string[]> log)
{
return log.Select(logRecord => new LogRow
{
TimeStamp = logRecord[2],
Category = logRecord[3],
Machine = logRecord[4],
ThreadId = logRecord[5],
ProcessId = logRecord[6],
ProcessName = logRecord[7],
DomainName = logRecord[8],
Message = logRecord[9],
Number = logRecord[10]
}).ToList();
}
private static IEnumerable<string[]> ParseLog(string query)
{
var records = new LogQueryClassClass().Execute(
query,
new COMCSVInputContextClass { headerRow = false, iTsFormat = "yyyy-MM-dd HH:mm:ss.fff" });
var entries = new List<string[]>();
while (!records.atEnd())
{
entries.Add(records.getRecord().toNativeString("CSVseparator").Split(
new[] { "CSVseparator" },
StringSplitOptions.None));
records.moveNext();
}
records.close();
return entries;
}
Se la vostra intenzione è quella di leggere i log salvati, siamo in grado di farlo utilizzando EventLogReader. Prende fondamentalmente due parametri: nomefile (come nel percorso del file) e secondo parametro che specifica il tipo di percorso. Per il vostro riferimento, che si dispone di un file salvato evtx - temp.evtx, si può leggere come in:
new EventLogReader(filepath, PathType.Filepath);
Questo vi dà un lettore di log degli eventi, che può essere usato per leggere gli eventi. E inoltre, se vuoi leggere il contenuto da esso, possiamo usare Proprietà che è fondamentalmente un elenco di stringhe. Può leggerlo, analizzarlo e ottenere qualunque informazione tu abbia bisogno.
Sono d'accordo che non abbiamo la possibilità di ottenere direttamente tutti i dettagli come quello che otteniamo usando EventLogEntry. Non di meno, abbiamo solo bisogno di fare un po 'di analisi per ottenere ciò di cui abbiamo bisogno usando il registro degli eventi.
- 1. Problemi del registro eventi PrototypeJS
- 2. Leggi registro eventi C#
- 3. Eventi deboli in .NET?
- 4. Come scrivere la categoria registro eventi
- 5. Come eseguire/aprire qualsiasi file in .NET
- 6. aggiungere registro eventi per Registry
- 7. Come aprire una chiave di registro WOW64 da un'applicazione .NET a 64 bit
- 8. Asincronia e eventi .NET?
- 9. Un'origine del registro eventi sempre disponibile per la scrittura?
- 10. Dove viene salvato Eclipse l'elenco dei file da aprire all'avvio?
- 11. Inoltro/inoltro eventi .NET
- 12. Impossibile aprire la porta seriale in .NET
- 13. Come aprire il testo in Blocco note da .NET?
- 14. Come aprire una nuova finestra in Windows Form in .NET?
- 15. Scrittura di eventi nel registro eventi di Windows utilizzando Coldfusion
- 16. Lettura evento registro eventi di Windows specifico
- 17. Monitoraggio eventi di Google Analytics come registro errori lato client
- 18. C# - Leggi registro eventi nidificati dall'applicazione personalizzata
- 19. Scrittura/lettura nel registro eventi di Windows
- 20. NLog: impossibile scrivere nel registro eventi
- 21. Eventi FOSUserBundle Symfony2 sul registro e login
- 22. Registro eventi di Windows - come registrare un'origine evento?
- 23. Impostazione di una 'categoria' nella registrazione libreria .NET Enterprise (per registro eventi)
- 24. Registro eventi di Windows e registri di testo
- 25. Quando accedere al registro eventi di Windows?
- 26. Cosa ID evento da utilizzare per le mie voci del registro eventi personalizzati?
- 27. Come posso fare eventi basati su orari/pianificati in .NET?
- 28. Registro .NET 4.5 IIS 10 Windows 10
- 29. come ripristinare l'ultimo codice salvato in eclissi?
- 30. Salva oggetto serializzabile nel registro .net?