2014-04-29 13 views
8

Używam aplikacji Microsoft Application Insights do mojej aplikacji internetowej. Do rejestrowania użyłem pakietu Application Insights TraceListener NuGet. To działało idealnie.Jak korzystać z Microsoft Application Insights z NLog (nie można znaleźć celu: "ApplicationInsights")

Teraz chciałbym przejść na NLog. I dodaje pakiet Microsoft.ApplicationInsights.NLogTarget Nuget i dodaje nowy cel nlog w mojej nlog pliku konfiguracyjnego:

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

NLog zgłasza wyjątek:

Target cannot be found: 'ApplicationInsights' 

Próbowałem też dodanie montaż poprzez rozszerzeń tak:

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

Ale to też nie działa.

Wszelkie sugestie?

+1

Have you Sprawdziłeś, czy plik Microsoft.ApplicationInsights.NLogTarget.dll jest poprawnie skopiowany do folderu wyjściowego? Czy próbowałeś zarejestrować cel z kodu za pomocą: 'ConfigurationItemFactory.Default.Targets.RegisterDefinition (" ApplicationInsightsTarget ", typeof (Microsoft.ApplicationInsights.NLogTarget.ApplicationInsightsTarget));'? – nemesv

+0

Sprawdziłem już, że docelowa dll NLog i wszystkie dll zależne są rzeczywiście w ostatecznym folderze bin. Ale postaram się dodać programowo, jak sugerujesz. Dobry pomysł! – Flynn

Odpowiedz

1

Rozwiązanie: (dzięki @nemesv za cynk)

Programowo dodać bramkę

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

i używać go z

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

wydaje się, że wszystkie są odwzorowane w celu śledzenia wglądu w aplikację, jakikolwiek pomysł na odwzorowanie go na wyjątek? – Bargitta

4

Albo można programowo określić cel:

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; 
Powiązane problemy