2014-04-29 16 views
8

Sto utilizzando Microsoft Application Insights per la mia applicazione Web. Ho usato il pacchetto Application Insights TraceListener NuGet per la registrazione. Ha funzionato perfettamente.Come utilizzare Microsoft Application Insights con NLog (Impossibile trovare la destinazione: 'ApplicationInsights')

Ora desidero passare a NLog. Ho aggiunto il pacchetto Microsoft.ApplicationInsights.NLogTarget NuGet e ha aggiunto un nuovo obiettivo NLog nel mio NLog file di configurazione:

<target name='ai' xsi:type='ApplicationInsights' /> 

NLog genera un'eccezione:

Target cannot be found: 'ApplicationInsights' 

Ho anche provato ad aggiungere l'assemblaggio tramite le estensioni in questo modo:

<extensions> 
    <add assembly="Microsoft.ApplicationInsights.NLogTarget" /> 
</extensions>  

Ma non ha funzionato neanche.

Qualche suggerimento?

+1

Have yo hai controllato che Microsoft.ApplicationInsights.NLogTarget.dll sia stato correttamente copiato nella cartella di output? Hai provato a registrare il target dal codice con: 'ConfigurationItemFactory.Default.Targets.RegisterDefinition (" ApplicationInsightsTarget ", typeof (Microsoft.ApplicationInsights.NLogTarget.ApplicationInsightsTarget));'? – nemesv

+0

Ho già controllato che la dll di destinazione di NLog e tutte le dll dipendenti siano effettivamente nella cartella bin finale. Ma cercherò di aggiungerlo a livello di codice come suggerito. Buona idea! – Flynn

risposta

1

Soluzione: (grazie a @nemesv per la segnalazione)

programmazione aggiungere il bersaglio con

ConfigurationItemFactory.Default.Targets.RegisterDefinition(
    "ApplicationInsightsTarget", 
    typeof(Microsoft.ApplicationInsights.NLogTarget.ApplicationInsightsTarget) 
); 

e utilizzarlo con

<target name='ai' xsi:type='ApplicationInsightsTarget' /> 
+0

sembra che tutti mappino per tracciare le informazioni sulle applicazioni, qualsiasi idea su come mapparli in eccezioni? – Bargitta

4

oppure è possibile specificare la destinazione a livello di codice:

var config = new LoggingConfiguration(); 
ConfigurationItemFactory.Default.Targets.RegisterDefinition(
      "ai", 
      typeof(ApplicationInsightsTarget) 
     ); 
ApplicationInsightsTarget aiTarget = new ApplicationInsightsTarget(); 
aiTarget.InstrumentationKey = "your_key"; 
aiTarget.Name = "ai"; 
config.AddTarget("ai", aiTarget); 
LogManager.Configuration = config; 
Problemi correlati