Estoy tratando de configurar mi azure asp.net sitio web para enviar log4net rastros de Azure Aplicación de Conocimientos. Puedo ver en mi azure consola de páginas vistas, etc, por lo tanto sé que está trabajando bien. También puedo ver log4net huellas, cuando se configura con un manejador de archivos, pero a la hora de configurar log4net a utilizar la aplicación de conocimientos controlador no veo ninguna log4net entradas aparecen en la aplicación insight tablero de instrumentos, sin errores o advertencias de compilación o en tiempo de ejecución no sólo de los resultados en el tablero de instrumentos. He mirado en el tráfico de la red en Fiddler, y puedo ver el número de páginas vistas de datos, etc de ser enviado a la aplicación de conocimientos, pero no la log4net traza de tráfico por lo tanto sospecho que esto es un problema de configuración.

Por separado he probado el TelemetryClient() en mi proyecto principal, y veo que el tracetraffic sucesfully en el tablero de instrumentos. Sin embargo, esto no se ajusta a mi caso de uso TelemetryClient no parece apoyo no asp.net dll como todavía (es decir, mi negocio de datos y la lógica de los que están en distintos dll).

Nadie ofrece cualquier idea o consejo?

He instalado el paquete de nuget para Microsoft.ApplicationInsights.Log4NetAppender.dll y estoy usando Microsoft.ApplicationInsights.0.13.2-build00132

Tengo el siguiente en mi web.config como por https://blog.ehn.nu/2014/11/using-log4net-for-application-insights/

<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>
  • Hola, tengo el mismo problema… ¿ya han encontrado una solución? Gracias…
  • no, aún no. He llegado a la MS equipo de responsables, pero no hay comentarios todavía.
  • Tengo exactamente este mismo problema. Puedo ver uncaught excepciones registra en la Aplicación de Conocimientos, pero no hay seguimiento para log4net aunque aparecen en el archivo appender bien. ¿Alguna vez encontrar una razón para esto?
  • hola @Phil , yo no, lamentablemente. He aparcado por ahora, como mi proyecto actual es de unos pocos meses de producción, ya que aún pienso en volver a este, antes de mi fecha de aunque. Ciertamente actualización si alguna vez hago obtener una solución.
  • Gracias por volver @Macb. Yo intenté crear un ejemplo canónico lo siguiente alguien había escribió en su blog, pero todavía no funciona. He dejado un comentario en ese blog de pesca para consejos y volverán con algún conocimiento (perdón por el juego de palabras) que se me ocurren.
  • Me topé con una posible solución y publicado una respuesta – crucemos los dedos ayuda a usted también!
  • Estoy recorriendo el código en el Reflector. Yo no lo tengo funcionando plenamente, pero sé que me han hecho algunos progresos. En el atributo type de la appender elemento, tratar de «ApplicationInsights.Log4Net.InsightsAppender, ApplicationInsights.Log4Net, Version=38.0.0.0, Culture=neutral, PublicKeyToken=null» o cualquiera que sea el AssemblyQualifiedName para que el archivo DLL se. «cualificada de la asamblea nombre» y «pleno de la asamblea el nombre de» son diferentes, una diferencia que he glosado en primera. Si el appender tipo no está en log4net DLL, creo que se necesita calificado nombre del ensamblado.

InformationsquelleAutor BMac | 2015-03-01

4 Comentarios

  1. 4

    Tratar de instalar la versión Preliminar de la Log4Net Appender.

    Que yo había creado un canónica ASP.NET MVC ejemplo, siguiendo los pasos creado por alguien más y tenía el mismo problema anterior. Pero, a continuación, seguido algunos de los pasos por escrito en la Aplicación de Conocimientos de la documentación y descubrió que los especificados instalación de la versión Preliminar del paquete para la log4net appender. Habiendo hecho de que funciona 🙂

    • Thakns @Phil voy a dar a este un intento, y darte a conocer.
    • Estoy tratando de hacer lo mismo y tienen Aplicación de Conocimientos de registro de excepciones, el número de solicitudes, etc., pero no puedo ver mi Log.Info() mensajes en cualquier lugar. Alguna sugerencia?
    • Lo siento @awj, pero no estoy buscando a mi Aplicación de Conocimientos de integración mucho a todos en este momento y mi carga de trabajo significa que no estoy probable que durante un tiempo cualquiera.
  2. 2

    Su log4net configuración es correcta; lo he utilizado en un sitio web de prueba y funcionó. También, ya que estamos viendo otros AI de datos en Fiddler, su AI también está configurado correctamente.
    Una cosa a tener en estos casos es la log4net.Config.XmlConfigurator atributo. Es un atributo de nivel de ensamblado y podría ser necesario para log4net de configuración para ser leído correctamente.

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

    Puede usted por favor asegúrese de que la tiene especificado en el proyecto y probar de nuevo?

    • gracias @tokaplan voy a dar a este un intento esta noche y responder de cualquier manera, esto ciertamente suena plausible.
    • por desgracia, este no parece hacer ninguna diferencia, todavía no hay tráfico de eventos que se muestra en la salida cuando la visualización a través de fiddler y, por tanto, nada en el tablero de instrumentos. Creo que voy a empezar con los primeros principios.
  3. 2

    En mi caso (he añadido Aplicación de Conocimientos a la aplicación web existente) además de Microsoft.ApplicationInsights.Log4NetAppender, he tenido que añadir Microsoft.ApplicationInsights.Web paquete usando NuGet. Después de que en el crea ApplicationInsights.config necesita especificar su InstrumentationKey.

    E. g. de ApplicationInsights.config

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

    También tuve algunos problemas con el envío de mi Log4Net registros de la IA en una Sitecore sitio web. Sitecore tiene su propia aplicación de Log4Net por lo que no se trabajó con la IA paquete de Nuget. He hecho mi propia Apprender en la que me envía los registros a 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);
            }
        }

    De sitecore.config:

    <log4net>
        <appender name="LogFileAppender" type="namespace.CustomLogFileAppender, dll name">
          ...
        </appender>
    </log4net>
    • Hola Robin, también hice mi propia appender, pero de alguna manera, alguna excepción no se muestran en IA portal. Tiene que se metió en problemas similares?

Dejar respuesta

Please enter your comment!
Please enter your name here