mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
feat(exception): trace exception log in LogExceptionReporter
This commit is contained in:
@@ -2,6 +2,9 @@ package work.slhaf.partner.framework.agent.exception
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSONObject
|
import com.alibaba.fastjson2.JSONObject
|
||||||
import org.slf4j.LoggerFactory
|
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(
|
abstract class AgentException @JvmOverloads constructor(
|
||||||
message: String,
|
message: String,
|
||||||
@@ -93,11 +96,17 @@ interface ExceptionReporter {
|
|||||||
object LoggerExceptionReporter : ExceptionReporter {
|
object LoggerExceptionReporter : ExceptionReporter {
|
||||||
|
|
||||||
private val log = LoggerFactory.getLogger(this::class.java)
|
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 reporterName(): String = "logger-reporter"
|
||||||
|
|
||||||
override fun report(exception: AgentException) {
|
override fun report(exception: AgentException) {
|
||||||
val exceptionReport = exception.toReport().toDetailedString()
|
val exceptionReport = exception.toReport().toDetailedString()
|
||||||
|
TraceRecorder.record(TraceEvent(tracePath, JSONObject.of("exception", exceptionReport)))
|
||||||
log.error("exception occurred: $exceptionReport")
|
log.error("exception occurred: $exceptionReport")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user