From a64c8f6c97c8a618c5c89ecdc2dc7b87922e0927 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Tue, 21 Apr 2026 08:49:05 +0800 Subject: [PATCH] feat(exception): trace exception log in LogExceptionReporter --- .../slhaf/partner/framework/agent/exception/exception.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/exception/exception.kt b/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/exception/exception.kt index bb389c1a..fc0a422d 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/exception/exception.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/exception/exception.kt @@ -2,6 +2,9 @@ package work.slhaf.partner.framework.agent.exception import com.alibaba.fastjson2.JSONObject import org.slf4j.LoggerFactory +import work.slhaf.partner.framework.agent.config.ConfigCenter +import work.slhaf.partner.framework.agent.log.TraceEvent +import work.slhaf.partner.framework.agent.log.TraceRecorder abstract class AgentException @JvmOverloads constructor( message: String, @@ -93,11 +96,17 @@ interface ExceptionReporter { object LoggerExceptionReporter : ExceptionReporter { private val log = LoggerFactory.getLogger(this::class.java) + private val tracePath = ConfigCenter.paths.stateDir + .resolve("trace") + .resolve("log-exception-reporter") + .toAbsolutePath() + .normalize() override fun reporterName(): String = "logger-reporter" override fun report(exception: AgentException) { val exceptionReport = exception.toReport().toDetailedString() + TraceRecorder.record(TraceEvent(tracePath, JSONObject.of("exception", exceptionReport))) log.error("exception occurred: $exceptionReport") }