2016-08-08 2 views
0

응용 프로그램 인사이트에 사용자 지정 이벤트를 보내려는 콘솔 응용 프로그램이 있습니다. Application Insight NLog 대상 (https://www.nuget.org/packages/Microsoft.ApplicationInsights.NLogTarget/)을 사용하고 싶지만 작동하지 않습니다. 나는 .config 파일을 통해 설정을 시도하고 수동으로 설정하려고 :응용 프로그램 통찰력 NLog 대상

var config = new LoggingConfiguration(); 
    ConfigurationItemFactory.Default.Targets.RegisterDefinition("ai", typeof(ApplicationInsightsTarget)); 
    ApplicationInsightsTarget aiTarget = new ApplicationInsightsTarget(); 
    aiTarget.InstrumentationKey = "my_key"; 
    aiTarget.Name = "aiTarget"; 
    LoggingRule rule = new LoggingRule("*", LogLevel.Info, aiTarget); 
    config.AddTarget("aiTarget", aiTarget); 
    config.LoggingRules.Add(rule); 
    LogManager.Configuration = config; 

하지만 여전히 아무것도, 나는 응용 프로그램의 통찰력에 내 예외 또는 이벤트를 볼 수 없습니다. 어떤 아이디어? 그런 다음

var config = new LoggingConfiguration(); 

ApplicationInsightsTarget target = new ApplicationInsightsTarget(); 
// You need this only if you did not define InstrumentationKey in ApplicationInsights.config or want to use different instrumentation key 
target.InstrumentationKey = "Your_Resource_Key"; 

LoggingRule rule = new LoggingRule("*", LogLevel.Trace, target); 
config.LoggingRules.Add(rule); 

LogManager.Configuration = config; 

Logger logger = LogManager.GetLogger("Example"); 

logger.Trace("trace log message"); 

아무것도가 dc.services에있는 상자에서 보내지는 경우, 내가 피들러와 함께 한 번 확인을 거라고 :

답변

0

나는 당신이 (당신이 구현 것과 꽤 가까운) 문서 here 따라 가정합니다. visualstudio.com 및 응답 코드는 무엇입니까? 문제가 실제로 전송이 아니라 수집이 아닌 경우 문제에 대한 단서를 제공 할 수 있습니다. 문제가 컬렉션의 경우

, 당신의 모습 AI 추적을 수집하는 PerfView and other Diagnostics tools.

PerfView 명령을 로컬로 문제를 해결할 수 있습니다 내 콘솔 응용 프로그램에 대한

PerfView.exe /onlyProviders=*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Web,*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-Rtia-SharedCore,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel collect 
0

, 내가 읽고 "INSTRUMENTATIONKEY" 런타임에 App.config에서.

처음에는 App.config에서 "APPINSIGHTS_INSTRUMENTATIONKEY"를 키로 추가했습니다.

다음이 줄을 추가하여 Main 함수에서이 키를 읽고 설정하십시오.

var key = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; 
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = key; 

메인 기능 또는 종료 기능에서 Application Insights로 데이터를 보낼 시간을주기 위해 thread.sleep을 추가하십시오.

System.Threading.Thread.Sleep(70000); 
관련 문제