File di Trace in .Net

Ieri mi sono scontrato con il problema di generare un file di trace di un'applicazione.

Il mio pensiero è subito volato verso le Enterprise Library, finalmente l'occasione di utilizzare questo gioiello della scienza e della tecnica. Durante il workshop del 2 dicembre (Architecture & Management) ero rimasto affascinato dagli Application Blocks, tanto (giustamente) decantati dal nostro Lorenzo. Dopo l'uscita della versione 1.0 delle EL non vedevo l'ora di avere l'occasione per buttarmici sopra. Ma con il senno di poi mi rendo conto che l'occasione non era questa.

Infatti, man mano che approfondivo l'argomento mi rendevo sempre più conto che le EL sono eccezionali, ma nel mio caso era come utilizzare una bomba atomica per far fuori una mosca. La maggior parte delle funzionalità offerte dal Logging Block erano superflue per il mio scopo. Dovevo solo scrivere un misero file di trace in locale in una posizione ben definita. Ripresomi dall'entusiasmo e con fare sconsolato (ancora una volta mi tocca rimandare l'uso delle EL Smile triste ) mi sono buttato sulla comodissima classe Trace del framework:

Trace.Listeners.Add(new TextWriterTraceListener(this.mTraceFile));
Trace.AutoFlush = 
true;
...
if(this.mWriteTrace) Trace.WriteLine(message, category);
...
~MiaClasse()
{
    Trace.Close();
}

Ho evitato volutamente l'uso dei TraceSwitch e del WriteLineIf dato che:

You can minimize the performance penalty of instrumenting your application by using If...Then statements instead of using WriteLineIf statements.

Fonte: Msdn - Trace.WriteLineIf Method

Che dire, la cosa nella sua banalità mi ha fatto riflettere. Spesso cadiamo nella trappola di dimenticare l'obiettivo e farci trascinare dal desiderio di utilizzare l'ultimo ritrovato perché ci incuriosisce, perché fa cool Smile a bocca aperta (La cosa vale anche nella vita di tutti i giorni, compriamo cellulari con più funzioni di un pc per poi usare il 10% di queste funzionalità). Altre volte vogliamo offrire di più di quanto il cliente ci ha chiesto, ed implementiamo di nostra iniziativa funzionalità che riteniamo utilissime (Ho cominciato ad essere cosciente di questa problematica dopo l'intervento dell'Agile Marco al workshop di cui sopra).

Quante volte, quindi, il nostro essere Tecno-Entusiasti ci allontana dall'obiettivo?

powered by IMHO 1.2 with Emoticon Formatter

Print | posted on venerdì 25 febbraio 2005 11:30

Copyright © Gabriele Gaggi

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski