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:
- erstellt die Erkenntnisse Anwendung in azur
- Ressourcen geschaffen, um die Filter in meinem Java-Web-App die HTTP-Requests zu erfassen
- erstellt ApplicationInsights.xml
- 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)
Ah, es stellt sich heraus, das Problem der Bibliothek Version.Vielen Dank für Ihre Freigabe! –