Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Logging delle applicazioni in .NET

Basta fare una piccola ricerca su Internet per trovare diversi framework di logging per .NET (vedi Log4NET, solo per citare il più famoso). Ci sono comunque situazioni in cui gli strumenti offerti da .NET sono più che sufficienti: basta utilizzare opportunamente la classe Trace e il file app.config per creare un semplice sistema di logging.

Allo scopo, si deve innanzi tutto inserire una sezione come la seguente nel file di configurazione dell'applicazione:

1 <system.diagnostics> 2 <trace autoflush="true" indentsize="4"> 3 <listeners> 4 <add name="textLoggerListener" 5 type="System.Diagnostics.TextWriterTraceListener" 6 initializeData="TaskLog.log" /> 7 <add name="configConsoleListener" 8 type="System.Diagnostics.ConsoleTraceListener" /> 9 </listeners> 10 </trace> 11 <switches> 12 <!-- This switch controls general messages. In order to 13 receive general trace messages change the value to the 14 appropriate level. "1" gives error messages, "2" gives errors 15 and warnings, "3" gives more detailed error information, and 16 "4" gives verbose trace information --> 17 <add name="TraceLevelSwitch" value="4" /> 18 </switches> 19 </system.diagnostics>

La sezione listeners (righe 3-7) specifica dove devono essere scritti i log: nel nostro caso, su un file di testo di nome TaskLog.log e sulla console. La sezione switches (righe 9-15), invece, indica che tipo di messaggi registrare: sono ammessi valori da 1 a 4, come indicato nel commento.

Fatto questo, nella nostra applicazione dobbiamo creare un oggetto di tipo TraceSwitch:

TraceSwitch traceSwitch = new TraceSwitch("TraceLevelSwitch", "Logging message switch");

Il primo parametro deve essere uguale al nome dello switch che è stato definito nel file di configurazione. L'oggetto così definito conterrà delle proprietà che indicano se si vuole effettuare il log degli errori (TraceError), degli avvisi (TraceWarning), di informazioni più dettagliate sulle operazioni (TraceInfo) oppure se si vuole un logging "verboso" (TraceVerbose).

Per utilizzare queste informazioni nel nostro sistema di logging, basta utilizzare il metodo Trace.WriteLineIf (oppure Trace.WriteIf):

Trace.WriteLineIf(traceSwitch.TraceVerbose, "Recupero in corso...."); Trace.WriteLineIf(traceSwitch.TraceInfo, "Operazione completata."); Trace.WriteLineIf(traceSwitch.TraceError, "Errore durante l'esecuzione.");

Il messaggio corrispondente sarà scritto nel log solo se la proprietà specificata come primo argomento vale true.

Utilizzando questo sistema, è possibile aggiungere nuovi listener o modificare il livello di logging semplicemente intervenendo sul file di configurazione dell'applicazione.

Technorati tags: , ,

Print | posted on sabato 26 aprile 2008 23:49 | Filed Under [ C# ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET