#65 - Effettuare il backup dell'event viewer con LINQ to XML
La flessibilità di LINQ ci permette di effettuare delle query di selezione su moltissime tipologie di dato. Una di queste può essere il log degli eventi del server (o semplicemente della macchina di sviluppo). Ogni tipologia di sorgente presente all'interno del log in questione è rappresentata nel .NET Framework attraverso una collezione di oggetti di tipo EventLogEntry.
Questa collezione, che viene esposta da una proprietà della classe EventLog, può essere utilizzata come fonte dati per una query LINQ in maniera veramente semplice.
EventLog log = new EventLog();
log.Source = "Application";
var query = from EventLogEntry entry in log.Entries
orderby entry.TimeGenerated descending
select entry;
Utilizzando un pò di sintassi LINQ to XML, possiamo creare senza troppi sforzi la nostra personale utility per effettuare il backup del log degli eventi di giorno in giorno, su file XML, che possiamo poi decorare con fogli di stile XSLT per renderne più user-friendly la visualizzazione.
var xml = new XDocument(
new XElement("ApplicationLog",
from EventLogEntry entry in log.Entries
orderby entry.TimeGenerated descending
select new XElement("Log",
new XElement("Message", entry.Message),
new XElement("TimeGenerated", entry.TimeGenerated),
new XElement("Source", entry.Source),
new XElement("EntryType", entry.EntryType.ToString())
)
)
);
DateTime oggi = DateTime.Now;
string path = String.Format("{0}_{1}_{2}.xml", oggi.Year, oggi.Month, oggi.Day);
xml.Save(Path.Combine(Environment.CurrentDirectory, path));
In questo modo, abbiamo una semplice utility di backup dell'event log filtrato per la sorgente "Application".
Approfondimenti
- #44 - Creare un documento XML con attributi utilizzando LINQ
- LINQ to reflection - Parte due
- #83 - Utilizzare LINQ per estrarre indirizzi email validi ed errati da una lista
- Introduzione a LINQ to XML
- #40 - Costruire un file XML tramite una query con LINQ
- #50 - Caricare immediatamente tutti i dati in una query con le LoadOptions di LINQ To SQL
- Le novità di C# 3.0 e Visual Basic 9.0 attraverso LINQ
- Redgate ANTS Profiler 4.0
- #52 - Ottimizzare le performance di una query LINQ To SQL
- Prima October Preview per ASP.NET 4.0
- #47 - Template dinamici di WPF con DataTemplateSelector
- #64 - Salvare una stringa xml in un file con LINQ To XML
Commenti
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!