Condividi tramite


Utilizzo dei log applicazione in Visual Basic

Aggiornamento: novembre 2007

Gli oggetti My.Applicaton.Log e My.Log consentono di scrivere facilmente informazioni sulla registrazione e l'analisi nei log.

Modalità di registrazione dei messaggi

Innanzitutto, viene verificata la severità del messaggio con la proprietà Switch della proprietà TraceSource del log. Per impostazione predefinita, solo i messaggi con livello di gravità "Informazione" e superiore vengono inviati ai listener di traccia, specificati nell'insieme TraceListener del log. Quindi, nei singoli listener la gravità del messaggio viene confrontata con la proprietà Switch del listener. Se la gravità del messaggio è abbastanza elevata, il messaggio viene scritto dal listener.

Nel seguente diagramma viene mostrato il modo in cui un messaggio scritto nel metodo WriteEntry viene inviato ai metodi WriteLine dei listener di traccia del log:

Chiamata di MyLog

È possibile modificare il comportamento del log e i listener di traccia modificando il file di configurazione dell'applicazione. Nel seguente diagramma viene mostrata la corrispondenza tra le parti del log e il file di configurazione.

Configurazione di MyLog

Posizione di registrazione dei messaggi

Se l'assembly non è dotato di file di configurazione, gli oggetti My.Application.Log e My.Log scrivono sull'output di debug dell'applicazione, tramite la classe DefaultTraceListener. Inoltre, l'oggetto My.Application.Log scrive nel file di log dell'assembly, tramite la classe FileLogTraceListener, mentre l'oggetto My.Log scrive sull'output della pagina Web ASP.NET, tramite la classe WebPageTraceListener.

L'output di debug può essere visualizzato in Visual Studio nella finestra di output durante l'esecuzione dell'applicazione in modalità di debug. Per aprire la finestra di output, scegliere Finestre dal menu Debug, quindi Output. Nella finestra di output selezionare Debug dall'elenco Mostra output di.

Per impostazione predefinita, My.Application.Log scrive il file di log nel percorso dei dati delle applicazioni dell'utente. È possibile ottenere tale percorso dalla proprietà FullLogFileName dell'oggetto Proprietà DefaultFileLogWriter (My.Application.Log e My.Log). Il formato del percorso è il seguente:

BasePath\CompanyName\ProductName\ProductVersion

Di seguito è riportato un tipico valore per BasePath.

C:\Documents and Settings\username\Dati applicazioni

I valori di CompanyName, ProductName e ProductVersion provengono dalle informazioni sugli assembly dell'applicazione. Il formato del nome del file di log è AssemblyName.log, dove AssemblyName è il nome file dell'assembly senza estensione. Se sono necessari più file di log, ad esempio se il log originale non è disponibile quando l'applicazione tenta di scrivere nel log, il formato del nome del file di log è AssemblyName-iteration.log, dove iteration è un Integer positivo.

È possibile eseguire l'override del comportamento predefinito aggiungendo o modificando i file di configurazione del computer e dell'applicazione. Per ulteriori informazioni, vedere Procedura dettagliata: modifica della posizione di inserimento delle informazioni con My.Application.Log.

Configurazione delle impostazioni del log

L'oggetto Log dispone di un'implementazione predefinita che viene eseguita senza un file di configurazione dell'applicazione, app.config. Per modificare le impostazioni predefinite, è necessario aggiungere un file di configurazione con le nuove impostazioni. Per ulteriori informazioni, vedere Procedura dettagliata: filtraggio dell'output di My.Application.Log.

Le sezioni della configurazione del log si trovano nel nodo <system.diagnostics> nel nodo <configuration> principale del file app.config. Le informazioni del log vengono definite in molti nodi:

  • I listener per l'oggetto Log sono definiti nel nodo <sources> denominato DefaultSource.

  • Il filtro della gravità per l'oggetto Log viene definito nel nodo <switches> denominato DefaultSwitch.

  • I listener di log sono definiti nel nodo <sharedListeners>.

Esempi di nodi <sources>, <switches> e <sharedListeners> sono riportati nel seguente codice:

<configuration>
  <system.diagnostics>
    <sources>
      <source name="DefaultSource" switchName="DefaultSwitch">
        <listeners>
          <add name="FileLog"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="DefaultSwitch" value="Information" />
    </switches>
    <sharedListeners>
      <add name="FileLog"
        type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
          Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, 
          PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
        initializeData="FileLogWriter"
      />
    </sharedListeners>
  </system.diagnostics>
</configuration>

Modifica delle impostazioni del log dopo la distribuzione

Quando si sviluppa un'applicazione, le impostazioni di configurazione vengono memorizzate nel file app.config, come mostrato negli esempi sopra riportati. Una volta distribuita l'applicazione, è possibile configurare il log modificando il file di configurazione. In un'applicazione basata su Windows, il nome di questo file è applicationName.exe.config e deve risiedere nella stessa cartella del file eseguibile. In caso di applicazioni Web si tratta del file Web.config associato al progetto.

Quando nell'applicazione viene eseguito il codice per la creazione di un'istanza di una classe per la prima volta, viene verificata la presenza di informazioni sull'oggetto nel file di configurazione. Per l'oggetto Log, questa operazione viene eseguita la prima volta che si accede all'oggetto Log. Il file di configurazione viene esaminato dal sistema solo una volta per ogni oggetto, la prima volta che l'oggetto viene creato dall'applicazione. Quindi, per rendere effettive le modifiche è necessario riavviare l'applicazione.

In un'applicazione distribuita, il codice di analisi viene attivato riconfigurando gli oggetti opzione prima che l'applicazione venga avviata. In genere questo implica l'attivazione e la disattivazione degli oggetti opzione o la modifica dei livelli di analisi, quindi il riavvio dell'applicazione.

Considerazioni sulla protezione

Durante la scrittura di dati nel log, si consideri quanto segue:

  • Assicurarsi che siano fornite tutte le informazioni utente. Assicurarsi che nel log vengano scritte dall'applicazione solo informazioni approvate. Ad esempio, il log dell'applicazione può contenere nomi utente ma non password utente.

  • Proteggere le posizioni del log. Tutti i log contenenti informazioni potenzialmente riservate devono essere memorizzati in una posizione protetta.

  • Evitare informazioni fuorvianti. In generale, nell'applicazione devono essere convalidati tutti i dati immessi da un utente prima di utilizzarli. Questa norma è valida anche per la scrittura dei dati nel log dell'applicazione.

  • Evitare Denial of Service. Se nel log viene scritta una quantità eccessiva di informazioni dall'applicazione, il log potrebbe risultare pieno o potrebbe essere difficile individuare informazioni importanti.

Vedere anche

Concetti

Registrazione di informazioni relative all'applicazione

Riferimenti

Oggetto My.Application.Log

Oggetto My.Log