J'ai utilisé System.Diagnostics.EventLog pour afficher les journaux sur l'ordinateur local. Cependant, je voudrais ouvrir une archive de journal des événements sauvegardés (.evt ou .evtx) et afficher les journaux contenus dans le fichier enregistré. J'ai juste besoin d'afficher les horodatages, les messages, les sources, etc. associés aux journaux dans le fichier. Cela peut-il être fait en C#?Comment ouvrir une archive de journal d'événements sauvegardée dans .NET?
Répondre
Consultez l'espace de noms System.Diagnostics.Eventing.Reader
. Plus précisément la classe EventLogQuery
.
http://msdn.microsoft.com/en-us/library/bb671200(v=VS.90).aspx
Essayez outil LogParser de Microsoft. Il peut extraire toutes les données des journaux de tout format de journal en utilisant une langue de sélection de type SQL. Il peut également être utilisé à partir de n'importe quelle application .NET. L'analyse syntaxique exemple des journaux CSV (je crois que vous pouvez utiliser ce code pour les fichiers EVT avec de petites modifications):
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;
}
Si votre intention est de lire les journaux enregistrés, nous pouvons le faire en utilisant EventLogReader. Il prend essentiellement deux paramètres - nom de fichier (comme dans le chemin du fichier), et second paramètre spécifiant le type de chemin. À titre de référence, que vous avez un fichier .evtx sauvé - temp.evtx, vous pouvez le lire comme dans:
new EventLogReader(filepath, PathType.Filepath);
Cela vous donne un lecteur de journal des événements, qui peut être utilisé pour lire les événements. Et plus encore, si vous voulez lire du contenu, nous pouvons utiliser Properties, qui est essentiellement une liste de chaînes. Peut le lire, l'analyser et obtenir toutes les informations dont vous avez besoin. Je suis d'accord que nous n'avons pas la disposition pour obtenir directement tous les détails comme ce que nous obtenons en utilisant EventLogEntry. Néanmoins, nous avons juste besoin d'un peu d'analyse pour obtenir ce dont nous avons besoin en utilisant un enregistrement d'événement.
- 1. Comment faire une archive différentielle compressée dans .NET?
- 2. Comment ouvrir une archive stockée dans SharePoint à partir de l'écran des tâches Team System?
- 3. Journal de débogage .NET
- 4. Access 2007 itérer via une requête sauvegardée
- 5. Modifier les opérations de journal dans .NET?
- 6. Comment ouvrir le journal des événements par programme?
- 7. C# Liste des fichiers dans une archive
- 8. Combinaison de plusieurs fichiers dans une archive unique (Silverlight/C#)
- 9. Comment détecter si un programme s'exécute dans une archive PAR?
- 10. Ouvrir le plugin .NET dans l'onglet
- 11. Visualiseur de journal de trace NET
- 12. Template Archive dans Wordpress
- 13. Comment faire un journal aussi petit que possible dans une base de données SQL?
- 14. Comment ouvrir un formulaire dans un onglet déterminé? vb .net
- 15. Boost :: Archive causant une erreur de lien étrange
- 16. Ruby 1.87 Rails 3.03 et Devise. L'image trombone n'est pas sauvegardée bien qu'elle indique qu'elle est dans le fichier journal
- 17. décompresser une archive winrar par programme
- 18. WebKit ne s'affichera pas sur une vue sauvegardée en couches
- 19. Comment ouvrir par programme le menu de l'application dans une application .NET CF 2.0
- 20. Comment ouvrir une URL dans un QTableView
- 21. ASP Net - Comment ouvrir un formulaire dans une nouvelle fenêtre dans ASP.NET
- 22. Comment ouvrir une nouvelle fenêtre dans aspnet
- 23. Ruby: Créer une archive Tar gzippée
- 24. de dialogue Ouvrir un fichier .NET
- 25. Comment implémenter une fenêtre de journal dans un navigateur Web?
- 26. Comment écrire une trace de pile complète dans le journal?
- 27. Comment ouvrir le journal des transactions manuellement dans sql server 2005?
- 28. Répertorier et supprimer des répertoires dans une archive
- 29. archive de base de données
- 30. La valeur n'est pas sauvegardée dans les chaînes