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