Tracing in Windows Communication Foundation

5 pagine in totale: <<Indietro 1 [2] 3 4 5 Avanti >>

WCF definisce già diverse Source in ascolto che possono essere utilizzate senza scrivere una linea di codice. Per comodità, queste source hanno lo stesso nome degli assembly da cui ricevono informazioni:

  • System.ServiceModel
  • System.ServiceModel.MessageLogging
  • System.IdentityModel
  • System.ServiceModel.Activation
  • System.IO.Log
  • System.Runtime.Serialization
  • Cardspace

Il livello del messaggio di tracing è fondamentale poiché è in base a questo che la sorgente decide se inviare l'informazione al listener o meno. La tabella dei livelli è la seguente:

OffNon viene inviata nessuna informazione di tracing al Listener
CriticalErrori gravi che si verificano a livello di sistema (Ad esempio una OutOfMemoryException) ed eccezioni non gestite dal codice. Questi errori causano l'arresto dell'applicazione
ErrorIl Listener riceve informazioni di errore che non causano tuttavia l'arresto dell'applicazione
WarningIl Listener riceve informazioni di warning che sono messaggi che avvertono di situazioni anomale che potrebbero causare problemi
InformationIl Listener riceve informazioni su importanti fasi del completamento di una richiesta
VerboseIl Listener riceve eventi utili soprattutto per scopi di debugging
ActivityTracingIl Listener è configurato per collegare le attività di tracing
AllIl Listener riceve e logga tutti i messaggi.

E' importante sottolineare che il livello di tracing include automaticamente tutti i livelli superiori (con la sola eccezione del livello Off). Questo significa che una sorgente che ha lo switchValue configurato su Warning, invierà al listener solo i dati di livello Critical, Error e Warning. Una sorgente con switchValue All invia al listener ogni tipo di messaggio ricevuto. Una nota particolare la merita ActivityTracing; essendo questo valore utile solo per la correlazione delle attività, può essere impostato insieme agli altri valori.

Così come è stato configurato il tracing per un assembly, se ne posso configurare anche altri. Se si voglio utilizzare file diversi, allora lo snippet visto in precedenza è sufficiente, ma se si vuole utilizzare un solo file per tutti i listener, allora la situazione cambia in quanto si dovrebbero ripetere le stesse informazioni per ogni Listener degli assembly. Per ovviare ad una situazione del genere, si possono configurare dei Listener globali a parte ed istruire quelli della Source per utilizzare quelli generici. In questo modo la configurazione reale dei Listener si trova solo su quelli globali, mentre quelli legati alla Source contengono solo un riferimento.

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
        switchValue="Information, ActivityTracing"
        propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.IdentityModel">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>

    <sharedListeners>
      <add name="xml"
        type="System.Diagnostics.XmlWriterTraceListener"
        initializeData="c:\log\Traces.svclog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>

In questo snippet sono configurati due assembly per il tracing: System.ServiceModel e System.IdentityModel. Entrambi hanno un solo Listener che ha il solo attributo name impostato a xml. In aggiunta al precedente esempio, c'è una sezione sharedListener che contiene la configurazione dei listener globali. In questo caso è configurato un solo listener che scrive su file in formato xml ed ha nome xml. L'associazione tra il Listener globale ed i vari Listener delle Source avviene tramite l'attributo name. In questo modo si possono configurare tutte le Source ed i Listener una sola volta e cambiare solo le associazioni.

5 pagine in totale: <<Indietro 1 [2] 3 4 5 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC