После некоторых исследований и помощи я могу разобраться в этой проблеме: данные могут быть отображены в обзоре консоли / файла / приложения.
Вам необходимо объединить nlog.config сapp.config (после установки пакета Microsoft.ApplicationInsights.NLogTarget).После слияния с app.config вы можете удалить nlog.config или просто оставить его там.
Вы должны установить ключ инструмента в приложении следующим образом: TelemetryConfiguration.Active.InstrumentationKey = "xxxx";
код, подобный приведенному ниже:
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
var client = new TelemetryClient();
TelemetryConfiguration.Active.InstrumentationKey = "xxxxxxxxxx";
client.TrackEvent("0222: app insights now sending a custom event xxxxxx");
logger.Trace("0222 Nlog :this is a trace message xxxxxx");
logger.Debug("0222 Nlog: this is a debug message xxxxxx");
logger.Info("0222 Nlog: this is a info message xxxxxx");
Console.ReadLine();
}
Слияние nlog.config с app.config (после установки пакета Microsoft.ApplicationInsights.NLogTarget), поэтому новый app.config выглядиткак показано ниже (и затем вы можете удалить nlog.config или просто оставить его там):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<!-- optional, add some variables
https://github.com/nlog/NLog/wiki/Configuration-file#variables
-->
<variable name="myvar" value="myvalue"/>
<!--
See https://github.com/nlog/nlog/wiki/Configuration-file
for information on customizing logging rules and outputs.
-->
<extensions>
<add assembly="Microsoft.ApplicationInsights.NLogTarget"/>
</extensions>
<targets>
<target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
<target xsi:type="Console" name="console"
layout="${longdate}|${uppercase:${level}}|${message}" />
<target xsi:type="ApplicationInsightsTarget" name="aiTarget"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file" />
<logger name="*" minlevel="Trace" writeTo="console" />
<logger name="*" minlevel="Trace" writeTo="aiTarget"/>
</rules>
</nlog>
</configuration>
Запустите ваш проект, вы увидите результаты в консоли и в окне вывода:
Затем перейдите в файл журнала, в котором вы определили, вы можете увидеть, что файл журнала создан и содержит правильные данные.
Наконец, перейдите на портал Azure -> Информация о вашем приложении -> поиск, вы можете видеть, что сообщения там (это может занять несколько минут):
Кстати, как проверитьЕсли сообщение может быть отправлено в приложение Azure Portal Insights:
при запуске проекта в Visual Studio, проверьтеокно вывода:
, если вы видите «Телеметрия Application Insights (не сконфигурировано):», это означает, что клавиша инструмента неверна или установлена неправильно.оно будет отправлено в insights приложения:
, если без 10 * * ненастроенного , то оно может быть отправлено в insights приложения.