Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Inviare i log di tracce diagnostiche per l'applicazione ASP.NET/ASP.NET Core da ILogger, NLog, log4Net o System.Diagnostics.Trace ad Azure Application Insights. Per le applicazioni Python, inviare i log di traccia diagnostica utilizzando AzureLogHandler nella libreria OpenCensus Python per Azure Monitor. È quindi possibile esplorarli ed eseguire ricerche al loro interno. Questi log vengono uniti agli altri file di log dell'applicazione. È possibile usarli per identificare le tracce associate a ogni richiesta dell'utente e correlarle ad altri eventi e report sulle eccezioni.
Nota
Può essere necessario un modulo di acquisizione dei log. Si tratta di un adattatore utile per i logger di terze parti. Se non stai già usando NLog, log4Net o System.Diagnostics.Trace, considera di chiamare direttamente TrackTrace() di Application Insights.
Nota
Il 31 marzo 2025, il supporto per l'inserimento delle chiavi di strumentazione terminerà. L'inserimento delle chiavi di strumentazione continuerà a funzionare, ma non saranno più garantiti aggiornamenti o supporto per la funzionalità. Eseguire la transizione alle stringhe di connessione per sfruttare le nuove funzionalità.
Installare la registrazione nell'applicazione
Installare il framework di registrazione scelto nel progetto, che dovrebbe comportare una voce corrispondente in app.config o web.config.
<configuration>
<system.diagnostics>
<trace>
<listeners>
<add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Configurare Application Insights per la raccolta dei log
Aggiungi Application Insights al tuo progetto se non l'hai ancora fatto ed è disponibile un'opzione per includere l'agente di raccolta dei log.
In alternativa, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Configura Application Insights. Selezionare l'opzione Configure trace collection (Configura raccolta delle tracce).
Nota
È possibile che il menu di Application Insights o l'opzione di raccolta dei log non sia presente. Vedere Risoluzione dei problemi.
Installazione manuale
Usare questo metodo se il tipo di progetto non è supportato dal programma di installazione di Application Insights, Per esempio, se si tratta di un progetto desktop di Windows.
Se si prevede di usare log4net o NLog, installarlo nel progetto.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Gestisci pacchetti NuGet.
Cerca Application Insights.
Selezionare uno dei pacchetti seguenti:
- ILogger: Microsoft.Extensions.Logging.ApplicationInsights
- NLog: Microsoft.ApplicationInsights.NLogTarget
- log4net: Microsoft.ApplicationInsights.Log4NetAppender
- System.Diagnostics: Microsoft.ApplicationInsights.TraceListener
- Microsoft.ApplicationInsights.DiagnosticSourceListener
- Microsoft.ApplicationInsights.EtwCollector
- Microsoft.ApplicationInsights.EventSourceListener
- ILogger: Microsoft.Extensions.Logging.ApplicationInsights
Il pacchetto NuGet installa gli assembly necessari e modifica web.config o app.config se applicabile.
ILogger
Per alcuni esempi d'uso dell'implementazione ILogger di Application Insights con applicazioni console e ASP.NET Core, vedere ApplicationInsightsLoggerProvider per i log ILogger di .NET Core.
Inserire chiamate di log di diagnostica
Se si usa System.Diagnostics.Trace, una tipica chiamata sarà simile alla seguente:
System.Diagnostics.Trace.TraceWarning("Slow response - database01");
Se si preferisce log4net o NLog, usare:
logger.Warn("Slow response - database01");
Usare gli eventi di EventSource
È possibile configurare eventi System.Diagnostics.Tracing.EventSource da inviare ad Application Insights come tracce. Installare innanzitutto il pacchetto NuGet Microsoft.ApplicationInsights.EventSourceListener
. Quindi modificare la sezione TelemetryModules
del file ApplicationInsights.config.
<Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
<Sources>
<Add Name="MyCompany" Level="Verbose" />
</Sources>
</Add>
Per ogni origine è possibile impostare i parametri seguenti:
- Name specifica il nome di EventSource da raccogliere.
- Livello specifica il livello di registrazione da raccogliere: Critico, Errore, Informazioni, Registra sempre, Dettagliato o Avviso.
- Keywords (facoltativo) specifica il valore intero di combinazioni di parole chiave da usare.
Usare gli eventi di DiagnosticSource
È possibile configurare eventi System.Diagnostics.DiagnosticSource da inviare ad Application Insights come tracce. Installare innanzitutto il pacchetto NuGet Microsoft.ApplicationInsights.DiagnosticSourceListener
. Modificare quindi la sezione "TelemetryModules" del file ApplicationInsights.config.
<Add Type="Microsoft.ApplicationInsights.DiagnosticSourceListener.DiagnosticSourceTelemetryModule, Microsoft.ApplicationInsights.DiagnosticSourceListener">
<Sources>
<Add Name="MyDiagnosticSourceName" />
</Sources>
</Add>
Per ogni sorgente diagnostica che si desidera tracciare, aggiungere una voce con l'attributo Name
impostato al nome della sorgente diagnostica.
Usare gli eventi ETW
È possibile configurare gli eventi di Event Trace for Windows (ETW) in modo che vengano inviati ad Application Insights come tracce. Installare innanzitutto il pacchetto NuGet Microsoft.ApplicationInsights.EtwCollector
. Modificare quindi la sezione "TelemetryModules" del file ApplicationInsights.config.
Nota
Gli eventi ETW possono essere raccolti solo se il processo che ospita l'SDK viene eseguito in un'identità che è membro del gruppo Performance Log Users o Administrators.
<Add Type="Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule, Microsoft.ApplicationInsights.EtwCollector">
<Sources>
<Add ProviderName="MyCompanyEventSourceName" Level="Verbose" />
</Sources>
</Add>
Per ogni origine è possibile impostare i parametri seguenti:
- ProviderName è il nome del provider ETW da raccogliere.
- ProviderGuid specifica il GUID del provider ETW da raccogliere. Può essere usato in sostituzione di
ProviderName
. - Livello imposta il livello di registrazione da raccogliere. Può essere impostato su Critical, Error, Informational, LogAlways, Verbose o Warning.
- Keywords (facoltativo) imposta il valore intero di combinazioni di parole chiave da usare.
Utilizzare direttamente l'API Trace
È possibile chiamare direttamente l'API di traccia di Application Insights. Gli adattatori di registrazione usano questa API.
Ad esempio:
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");
Un vantaggio di TrackTrace
è la possibilità di inserire dati relativamente lunghi nel messaggio. Ad esempio è possibile codificare dati POST.
È anche possibile aggiungere al messaggio un livello di gravità. Inoltre, come per altri tipi di dati di telemetria, è possibile aggiungere valori di proprietà utili per filtrare o cercare set diversi di tracce. Ad esempio:
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow database response",
SeverityLevel.Warning,
new Dictionary<string, string> { { "database", "db.ID" } });
In questo modo, è possibile filtrare facilmente in Ricerca transazioni tutti i messaggi con un determinato livello di gravità relativi a un database specifico.
AzureLogHandler per OpenCensus Python
Il gestore di log di Azure Monitor consente di esportare i log di Python in Azure Monitor.
Instrumentare l'applicazione con l'SDK OpenCensus Python per Monitoraggio di Azure.
Questo esempio illustra come inviare un log del livello di avviso ad Azure Monitor.
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(connection_string='InstrumentationKey=<your-instrumentation_key-here>'))
logger.warning('Hello, World!')
Esplorare i log
Eseguire l'app in modalità debug o distribuirla in modalità live.
Nel riquadro di panoramica dell'app nel portale di Application Insights selezionare Ricerca transazioni.
Ad esempio, è possibile:
- Filtrare in base a tracce di log o elementi con proprietà specifiche.
- Esaminare un elemento specifico in modo dettagliato
- Trovare altri dati del registro di sistema relativi alla stessa richiesta utente (con lo stesso ID operazione).
- Salvare la configurazione di una pagina come preferita.
Nota
Se l'applicazione invia molti dati e si usa Application Insights SDK per ASP.NET versione 2.0.0-beta3 o successiva, la funzionalità di campionamento adattivo potrebbe essere attiva e inviare solo una parte dei dati di telemetria. Altre informazioni sul campionamento.
Risoluzione dei problemi
Risposte a domande comuni.
Cosa causa il ritardo dei dati di telemetria, una rete sovraccaricata e una trasmissione inefficiente?
System.Diagnostics.Tracing dispone di una funzionalità di scaricamento automatico. Questa funzionalità causa lo scaricamento dell'SDK con ogni elemento di telemetria, un comportamento indesiderato che può causare problemi dell'adattatore di registrazione, ad esempio dati di telemetria ritardati, sovraccarico della rete e trasmissione inefficiente.
Come procedere per Java?
Nella strumentazione senza codice Java (scelta consigliata) i log vengono raccolti per impostazione predefinita. Usare l'agente Java 3.0.
L'agente Java di Application Insights, per impostazione predefinita, raccoglie i log da Log4j, Logback e java.util.logging.
Perché non è disponibile alcuna opzione di Application Insights nel menu di scelta rapida del progetto?
- Verificare che Developer Analytics Tools sia installato nel computer di sviluppo. In Visual Studio passare a Strumenti>Estensioni e aggiornamenti e cercare Developer Analytics Tools. Se non è presente nella scheda Installati, aprire la scheda Online e installarlo.
- Può trattarsi di un tipo di progetto che Developer Analytics Tools non supporta. Usare l' installazione manuale.
Perché non è disponibile alcuna opzione per l'adattatore di log nello strumento di configurazione?
- Installare prima il framework di registrazione.
- Se si usa System.Diagnostics.Trace, assicurarsi di averlo configurato in web.config.
- Assicurarsi di avere la versione più recente di Application Insights. In Visual Studio passare a Strumenti>Estensioni e aggiornamenti e aprire la scheda Aggiornamenti. Se Developer Analytics Tools è presente, selezionarlo per eseguire l'aggiornamento.
Perché viene visualizzato il messaggio di errore "La chiave di strumentazione non può essere vuota"?
È probabile che sia stato installato il pacchetto NuGet dell'adattatore di registrazione senza installare Application Insights. In Esplora soluzioni fare clic con il pulsante destro del mouse su ApplicationInsights.config e scegliere Aggiorna Application Insights. Verrà richiesto di accedere ad Azure e creare una risorsa Application Insights o di riutilizzarne una esistente. In questo modo il problema dovrebbe essere risolto.
Perché è possibile visualizzare tracce ma non altri eventi nella ricerca diagnostica?
Potrebbe essere necessario un po' di tempo prima che tutti gli eventi e le richieste passino attraverso la pipeline.
Quanti dati vengono conservati?
La quantità di dati mantenuti dipende da diversi fattori. Per altre informazioni, vedere la sezione Limiti della pagina delle metriche degli eventi del cliente.
Perché non vengono visualizzate alcune voci di log previste?
Forse l'applicazione invia notevoli quantità di dati ed è in uso Application Insights SDK per ASP.NET versione 2.0.0-beta3 o successive. In questo casso, la funzionalità di campionamento adattivo potrebbe essere attiva e inviare solo una parte dei dati di telemetria. Altre informazioni sul campionamento.
Passaggi successivi
- Verificare di eseguire una versione supportata di Application Insights SDK.
- Diagnosticare errori ed eccezioni in ASP.NET
- Altre informazioni su ricerca transazioni
- Configurare i test di disponibilità e velocità di risposta