ASPItalia.Error: logging di errori su database, file e feed RSS

di Ugo Lattanzi, in ASP.NET,
  • 0
  • 0
  • 0
  • 30,88 KB

Questo progetto non è altro che un libreria (assembly) creata per facilitare lo storage degli errori che si possono verificare in una nostra applicazione.

Al momento questa versione è compatibile con il .NET Framework 2.0.

Tra le caratteristiche principali di questa libreria troviamo la possibilità di memorizzare gli errori in svariati formati (XML, plain text, feed RSS 2.0, database e registro Eventi di Windows) e la possibilità di parametrizzare il tutto (numero di feed, dimensione massima dei file, stringa di connessione, ecc).

Nel file zip trovere anche una pagina ASP.NET che mostra come modificare i settaggi direttamente da una pagina web, comodo in caso si debbano modificare i parametri a runtime.

Per ciò che riguarda l'installazione è piuttosto semplice, basta referenziare l'assembly nel vostro progetto, creare una cartella "Config" nella root della vostra applicazione (ovviamente il nome della cartella è personalizabilem basta cambiarlo anche all'interno del vostro web.config), creando al suo interno un file error.config strutturato in questo modo:

&lt;?xml version=&quot;1.0&quot;?&gt;<br />&lt;ModuleSettings xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt; <br />&lt;PrioritySend&gt;4&lt;/PrioritySend&gt;<br />&lt;FeedEnabled&gt;true&lt;/FeedEnabled&gt;<br />&lt;FeedNum&gt;15&lt;/FeedNum&gt;<br />&lt;FeedPath&gt;D:\Aspitalia.Error\wwwroot\LogEvent\Errors\Feed\&lt;/FeedPath&gt;<br />&lt;FeedName&gt;feed.xml&lt;/FeedName&gt;<br />&lt;FeedTitolo&gt;Errors feed&lt;/FeedTitolo&gt;<br />&lt;FeedLink&gt;http://localhost/&lt;/FeedLink&gt;<br />&lt;FeedDescription&gt;Feed per la traccia degli errori&lt;/FeedDescription&gt;<br />&lt;XmlEnabled&gt;true&lt;/XmlEnabled&gt;<br />&lt;XMLName&gt;xmlError&lt;/XMLName&gt;<br />&lt;XMLPath&gt; D:\Aspitalia.Error\wwwroot\LogEvent\Errors\Xml\&lt;/XMLPath&gt;<br />&lt;XMLSize&gt;200000&lt;/XMLSize&gt;<br />&lt;TxtEnabled&gt;true&lt;/TxtEnabled&gt;<br />&lt;TXTName&gt;txtError&lt;/TXTName&gt;<br />&lt;TXTSize&gt;200000&lt;/TXTSize&gt;<br />&lt;TXTPath&gt; D:\Aspitalia.Error\wwwroot\LogEvent\Errors\Txt/&lt;/TXTPath&gt;<br />&lt;LogEventEnabled&gt;true&lt;/LogEventEnabled&gt;<br />&lt;LogSource&gt;aspitalia&lt;/LogSource&gt;<br />&lt;LogName&gt;aspitalia&lt;/LogName&gt;<br />&lt;DataBaseEnabled&gt;false&lt;/DataBaseEnabled&gt;<br />&lt;DataBaseString&gt;Data Source=.\SQLEXPRESS;AttachDbFilename= D:\Aspitalia.Error\wwwroot\App_Data\Aspitalia.Test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True&lt;/DataBaseString&gt;<br />&lt;/ModuleSettings&gt; 

Ovviamente sosituiamo i percorsi con quelli giusti per la nostra applicazione.

Per concludere nella sezione <appSettings> del nostro web.config aggiungiamo il collegamento al nostro file di configurazione error.config, quindi:

&lt;appSettings&gt;<br />&lt;add key=&quot;Error_SettingsFile&quot; value=&quot;~/Config/Error.Config&quot;/&gt;<br />&lt;/appSettings&gt; 

Ora la nostra libreria è configurata e funzionante. Per provarla non ci basta che generare un errore all'interno di una nostra pagina.

try<br />{<br />int pippo = Convert.ToInt32(&quot;ppp&quot;);<br />}<br />catch (Exception exc)<br />{<br />new AppException(exc);<br />throw;<br />}

Solo due piccole note:

  • le chiamate per lo storage vengono effettuate in maniera asincrona tramite i thread, in modo da liberare immediatamente le risorse, utile se si deve memorizzare l'errore in sistemi in produzione;
  • lo storage su database è stato creato per Sql Server 2000/2005.

All'interno dell'allegato trovate un esempio i sorgenti dell'assembly ed un sito di demo.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti