Kotlin 和 autocollect appinsight-agent.jar

问题描述 投票:0回答:1

我已成功使用 App-Insight 库和 Autocollect 进行日志记录。虽然我使用 SLF4J 的日志可以发送到 Azure Monitor,但我遇到了一个问题,即即使我使用相同的 SLF4J 库,也无法捕获来自 Kotlin 类的日志。我该如何解决这个问题?还有其他人遇到过类似的问题吗?我不确定该怎么办。也许我可以使用 Tracktrace 方法,但我更愿意使用 Autocollect 找到解决方案。 我使用 appinsight-agent 版本 3.5.1 appinsight-core kotlin/java 17

kotlin azure-application-insights
1个回答
0
投票

我遇到了一个问题,即使我使用相同的 SLF4J 库,也无法捕获来自 Kotlin 类的日志。

在这里,每当我们处理应用程序洞察时,如果配置格式正确,获取跟踪日志都会有一些延迟,我们将在一段时间后获得跟踪日志。

  • 检查以下配置。

包含 SLF4J、Logback、applicationinsights 和 Logback 的 Azure Monitor 附加程序的依赖项 build.gradle.kts:

dependencies {
    implementation("org.slf4j:slf4j-api:2.0.0-alpha1")
    implementation("ch.qos.logback:logback-classic:1.2.3")
    implementation("com.microsoft.azure:azure-logback-appender:1.1.1")
    implementation("com.microsoft.azure:applicationinsights-agent:3.4.19")
}
  • logback.xml
    目录中创建
    src
    文件。

logback.xml:

<configuration>

    <appender name="azure" class="com.microsoft.azure.logback.AzureAppender">
        <instrumentationKey>YOUR_INSTRUMENTATION_KEY</instrumentationKey>
        <contextField>properties</contextField>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="azure"/>
    </root>

</configuration>
  • 使用SDK提供的API来跟踪遥测数据,例如事件、跟踪、异常和性能计数器。
import com.microsoft.applicationinsights.TelemetryClient

fun main() {
    val telemetryClient = TelemetryClient()
    
    // Track an event
    telemetryClient.trackEvent("MyEvent")
    
    // Track a trace
    telemetryClient.trackTrace("MyTrace")
    
    // Track an exception
    val exception = Exception("Something went wrong")
    telemetryClient.trackException(exception)
    
    // Flush telemetry data
    telemetryClient.flush()
}

痕迹:

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.