2016-03-18 41 views
-1

我正在使用NLog的編程配置,其中我添加了ApplicationInsights以在Azure中記錄消息。但我不知道如何指定該消息的佈局(例如,在消息中添加日期時間)。如何爲ApplicationInsights Nlog目標指定佈局?

例如,對於文件的目標我指定:

var fileTarget = new FileTarget(); 
fileTarget.Name = "file"; 
fileTarget.FileName = @"${basedir}/logs/${shortdate}.log"; 
fileTarget.Layout = @"${longdate} ${uppercase:${level}} ${message}"; 
config.AddTarget("file", fileTarget); 

但對於應用見解:

ConfigurationItemFactory.Default.Targets.RegisterDefinition(
       "ai", 
       typeof(ApplicationInsightsTarget) 
); 
ApplicationInsightsTarget aiTarget = new ApplicationInsightsTarget(); 
aiTarget.InstrumentationKey = "my_key"; 
aiTarget.Name = "ai"; 
config.AddTarget("ai", aiTarget); 

我怎麼能指定AI佈局?

+2

看起來像這樣可以實現,如果AI目標開始繼承TargetWithLayout而不是目標並獲得像這樣的消息:string logMessage = this.Layout.Render(logEvent)(https://github.com/Microsoft/ApplicationInsights-dotnet -logging /斑點/主/ SRC /適配器/ NLogTarget.Shared/ApplicationInsightsTarget.cs)。你可以在github上添加一個問題,甚至可以實現它。 –

回答

1

據我所知,AI目標不允許覆蓋默認佈局。

1

從版本2.0.0開始ApplicationInsights開始支持佈局。您可以像配置其他目標一樣配置它。 Release Notes