Подтвердить что ты не робот

Log4Net с информацией о приложениях

Я пытаюсь настроить сайт azure asp.net для отправки следов log4net в Azure Application Insights. Я могу видеть на моих представлениях в консоли на лазурном экране и т.д., Поэтому я знаю, что он работает нормально. Я также могу видеть трассировки log4net при настройке с помощью обработчика файлов, но при настройке log4net для использования обработчика данных приложений я не вижу никаких записей log4net, отображаемых в панели мониторинга приложений, никаких ошибок или предупреждений при сборке или времени выполнения - просто никаких результатов в приборной панели нет. Я просмотрел сетевой трафик в Fiddler, и я могу видеть данные о просмотре страниц и т.д., Отправляемые в приложения, но не трафик трассировки log4net, поэтому я подозреваю, что это проблема конфигурации.

Отдельно я пробовал TelemetryClient() в моем основном проекте, и я вижу tracetraffic с достаточной степенью уверенности в панели инструментов. Тем не менее, это не подходит для моего использования, поскольку TelemetryClient пока не поддерживает dll asp.net asp.net(т.е. Моя бизнес-логика и данные, которые находятся в отдельной DLL).

Кто-нибудь предлагает какие-либо идеи или советы?

Я установил пакет nuget для Microsoft.ApplicationInsights.Log4NetAppender.dll, и я использую Microsoft.ApplicationInsights.0.13.2-build00132

В моем web.config есть следующее: http://geekswithblogs.net/jakob/archive/2014/11/09/using-log4net-for-application-insights.aspx

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <root>
      <level value="ALL"/>
      <appender-ref ref="aiAppender"/>
    </root>
    <appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline"/>
      </layout>
    </appender>
  </log4net>
<configuration>
4b9b3361

Ответ 1

Попробуйте установить версию PreRelease Log4Net Appender.

Я создал канонический пример ASP.NET MVC, выполнив шаги созданные кем-то другим и имел ту же проблему выше. Но затем последовали некоторые шаги, написанные в документации Application Insights и обнаружили, что те, которые указали установку пакета PreRelease для приложения log4net. Сделав это, он работал:)

Ответ 2

Ваша конфигурация log4net верна; Я использовал его на тестовом веб-сайте, и он сработал. Кроме того, поскольку вы видите другие данные AI в Fiddler, ваш AI также настроен правильно. В таких случаях стоит искать атрибут log4net.Config.XmlConfigurator. Это атрибут уровня сборки, и может потребоваться правильное чтение конфигурации log4net.

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

Можете ли вы убедиться, что он указан в вашем проекте и повторите попытку?

Ответ 3

У меня также возникли проблемы с отправкой журналов Log4Net в AI на веб-сайте Sitecore. Sitecore имеет собственную реализацию Log4Net, поэтому он не работал с пакетом AI Nuget. Я сделал свой собственный Apprender, в котором я отправляю журналы в AI.

 public class CustomLogFileAppender : SitecoreLogFileAppender
    {
        protected override void Append(LoggingEvent loggingEvent)
        {
            if (Sitecore.Context.Site != null )
            {

                if(loggingEvent.Level == Level.FATAL)
                {
                    AppsInsightsLogHelper.Critical(loggingEvent.RenderedMessage);
                }

                if (loggingEvent.Level == Level.ERROR)
                {
                    AppsInsightsLogHelper.Error(loggingEvent.RenderedMessage);
                }

                if (loggingEvent.Level == Level.WARN)
                {
                    AppsInsightsLogHelper.Warning(loggingEvent.RenderedMessage);
                }

                if(loggingEvent.Level == Level.INFO)
                {
                    AppsInsightsLogHelper.Info(loggingEvent.RenderedMessage);
                }


            }

                base.Append(loggingEvent);
        }
    }

В файле sitecore.config:

<log4net>
    <appender name="LogFileAppender" type="namespace.CustomLogFileAppender, dll name">
      ...
    </appender>
</log4net>

Ответ 4

В моем случае (я добавил Application Insights к существующему веб-приложению), кроме Microsoft.ApplicationInsights.Log4NetAppender мне пришлось добавить пакет Microsoft.ApplicationInsights.Web с помощью NuGet. После этого в созданном ApplicationInsights.config вам нужно указать свой InstrumentationKey.

например. of ApplicationInsights.config

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
  <InstrumentationKey>YOUR KEY HERE</InstrumentationKey>
  <TelemetryModules>
  ...