2017-10-24 1 views
0

Ich habe eine Java-Web-App (Springboot-App), wo ich in die Protokolle der Anwendung Einblicke in azure schieben möchte. Ich verwende Logback als mein Logging-Framework, da es von Springboot nativ unterstützt wird. Ich folgte dem folgenden Blog für die Integration der ApplicationInsights für meine Web App.Nicht möglich Logs zu Anwendung Insights mit Logback Appender

https://github.com/AzureCAT-GSI/DevCamp/tree/master/HOL/java/06-appinsights

Gemäß diesem Blog habe ich folgendes erstellt:

  1. erstellt die Erkenntnisse Anwendung in azur
  2. Ressourcen geschaffen, um die Filter in meinem Java-Web-App die HTTP-Requests
  3. zu erfassen
  4. erstellt ApplicationInsights.xml
  5. erstellt logback.xml, die den AI-Appender von Azure zur Verfügung gestellt haben.

hier sind die Schnipsel aus meinem Web-App

1) ApplicationInsight Filterklasse ist wie folgt: -

@Configuration 

public class AppInsightsConfig { 

    @Bean 
    public String telemetryConfig() { 
     String telemetryKey = System.getenv("APPLICATION_INSIGHTS_IKEY"); 
     if (telemetryKey != null) { 
      TelemetryConfiguration.getActive().setInstrumentationKey(telemetryKey); 
     } 
     return telemetryKey; 
    } 

    @Bean 
    @Order(1) 
    public org.springframework.boot.web.servlet.FilterRegistrationBean aiFilterRegistration() { 
     FilterRegistrationBean registration = new FilterRegistrationBean(); 
     registration.setFilter(new WebRequestTrackingFilter()); 
     registration.addUrlPatterns("/**"); 
     registration.setOrder(1); 
     return registration; 
    } 

    @Bean(name = "WebRequestTrackingFilter") 
    public Filter WebRequestTrackingFilter() { 
     return new WebRequestTrackingFilter(); 
    } 
} 

2) ApplicationInsights.xml (src/main/resources Ordner

)
<?xml version="1.0" encoding="UTF-8"?> 
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30"> 


    <!-- The key from the portal: --> 

    <InstrumentationKey>my app key</InstrumentationKey> 


    <!-- HTTP request component (not required for bare API) --> 

    <TelemetryModules> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/> 
    </TelemetryModules> 

    <!-- Events correlation (not required for bare API) --> 
    <!-- These initializers add context data to each event --> 

    <TelemetryInitializers> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationIdTelemetryInitializer"/> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationNameTelemetryInitializer"/> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebSessionTelemetryInitializer"/> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserTelemetryInitializer"/> 
     <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserAgentTelemetryInitializer"/> 

    </TelemetryInitializers> 
    </ApplicationInsights> 

3) Logback.xml ist wie folgt: -

<configuration> 
    <appender name="aiAppender" 
     class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender"> 
    </appender> 
    <root level="trace"> 
     <appender-ref ref="aiAppender" /> 
    </root> 

    <logger name="org.springframework.web" level="INFO"/> 
</configuration> 

Das Problem ist, dass ich nicht in der Lage bin, die Protokolle zu dem App Einsichten zu drücken. Allerdings kann ich die Telemetries in der App einholen.

Anmerkung: Ich bin die neuesten Versionen von appinsights Bibliotheken (Kern und Web)

Antwort

3

Es scheint 1.0.10 um einen Fehler in azur Bibliothek Version. Das Update gibt es in der nächsten Version 1.0.11. Um das Problem zu beheben, habe ich die azurblauen Bibliotheken auf 1.0.9 heruntergestuft und alles funktionierte wie ein Zauber. Die Bibliotheken Application Insights Core/Web/Logback Appender wurden von 1.0.10 auf 1.0.9 heruntergestuft.

Das Problem war nur mit Logback Appender. Log4j-Versionen haben sich mit Version 1.0.10 korrekt verhalten.

+0

Ah, es stellt sich heraus, das Problem der Bibliothek Version.Vielen Dank für Ihre Freigabe! –

0

Ich hatte das gleiche Problem und Ich habe die Bibliothek Version von 1.0.10 auf 1.0.9 heruntergestuft, wie Sie empfohlen. es ist gelöst! Vielen Dank.

+0

Kannst du meine Stimme abstimmen? –

1

Eine neue Version von Application Insights Java SDK v2.0.0-BETA ist jetzt verfügbar. Bitte upgraden Sie auf diese Version. Das Problem ist jetzt behoben.

Verwandte Themen