in Sources/CrashReporter2/CrashFileHelper.swift [46:79]
func parseCrashFileInternal(_ filePath: String) {
guard let results = LogParser.shared.parser(filePath: filePath) else { return }
guard let catId = results["catId"],
let errorId = results["id"],
let subType = results["sub_type"] else { return }
var mutableResults = results
mutableResults.removeValue(forKey: "catId")
mutableResults.removeValue(forKey: "id")
mutableResults.removeValue(forKey: "sub_type")
if let spanBuilder = CrashReporterOTel.spanBuilder("crashreporter") {
for (key, value) in mutableResults {
if "basic_info" == key || "summary" == key || "stacktrace" == key {
spanBuilder.setAttribute(key: "ex.\(key)", value: value)
}
}
spanBuilder.setAttribute(key: "t", value: "error")
spanBuilder.setAttribute(key: "ex.type", value: "crash")
spanBuilder.setAttribute(key: "ex.sub_type", value: subType)
spanBuilder.setAttribute(key: "ex.id", value: errorId)
spanBuilder.setAttribute(key: "ex.catId", value: catId)
AttributesHelper.setAttributes(spanBuilder)
let span = spanBuilder.startSpan()
span.end()
CrashReporterOTel.forceFlush()
_ = try? FileManager.default.removeItem(atPath: filePath)
}
}