Nella mia app.config voglio impostare 3 livelli di traccia (switch?): Verbose, warning e none. Nella versione di debug del codice, voglio che l'interruttore dettagliato sia attivo, nella versione Voglio avvertimento. In casi particolari, gli utenti dell'applicazione possono modificare il file di configurazione per disabilitare tutte le tracce.non può capire .net 2010 tracing e app.config
Desidero che le tracce di debug vengano emesse sulla console, mentre le tracce di rilascio solo su un file di registro.
I', ve scritto quanto segue:
[...]
<system.diagnostics>
<sources>
<!-- This section defines the logging configuration for My.Application.Log -->
<source name="debug" switchName="debug">
<listeners>
<add name="FileLog"/>
<add name="console"/>
</listeners>
</source>
<source name="release" switchName="release">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source name="silent" switchName="none">
<listeners/>
</source>
</sources>
<switches>
<add name="debug" value="Verbose"/>
<add name="release" value="Warning"/>
<add name="none" value="Off"/>
</switches>
<!--<sharedListeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
</sharedListeners>-->
<trace autoflush="false" indentsize="4">
<listeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
<remove name="Default"/>
</listeners>
</trace>
</system.diagnostics>
[...]
Poi nel codice che chiamano traccia in questo modo:
Public Shared Sub HandleException(ByVal ex As Exception)
Trace.WriteLine(ex.Message, "Error")
[...]
C'è qualcosa che mi manca Credo. Come si dice al metodo Trace l'interruttore giusto da usare ?? In che modo gli utenti dell'applicazione possono modificare il file di configurazione per consentire la traccia o disattivarlo?
Grazie.
Grazie mille, ho letto tutto, hai fatto luce nella mia oscurità di registrazione :) Ti suggerirei di scrivere un articolo/post di blog/pagina web, qualunque cosa per concentrare tutte le informazioni che altrimenti sarebbero diffuse . Se lo fai, quindi inviami il link! Grazie ancora. – vulkanino
Alla fine ho capito, ma non riesco ancora a ottenere l'uso dell'ID per passare al metodo TraceEvent. Se l'origine di tracciamento mi consente di configurare dove (ascoltatori) e quanto (switch) registrare, e quindi ho programmaticamente specificato il tipo di evento (TraceEventType), a cosa serve dover specificare anche un ID? – vulkanino
Per un'idea degli ID evento, vedere la prima risposta a questa domanda: http://stackoverflow.com/questions/576185/logging-best-practices Guarda sotto "Altri consigli". Seguendo questo suggerimento, è possibile classificare ogni messaggio di registro (indipendentemente da TraceSource, TraceEventType o dal messaggio). Sarebbe quindi relativamente facile interrogare/cercare l'output per determinati tipi di messaggio. Ad esempio, se ID evento 1001 significa "lettura da file" e 1002 significa "scrittura su file", è possibile trovare tutti i messaggi di registro nell'output che corrispondono alla lettura o alla scrittura in un file. – wageoghe