我们已经为Fabric和crashlytics安装了pod文件,并将其导入到应用程序委托中。 didFinishLaunchingWithOptions 函数中的 Fabric.with([Crashlytics.self,Branch.self])。一切正常。但是我想打印出用户可以点击哪个动作。 例如,点击“登录” 按钮。
我看到我们可以调用此函数,但是在哪里可以调用此函数?
func write(string: String) {
CLSLogv("%@", getVaList([string]))
}
我们将无法从这次崩溃中找到代码行
如何在结构中打印自定义日志? 崩溃时会调用哪个默认函数?
答案 0 :(得分:1)
您可以使用logEvent函数创建CrashLogger
类,该类将eventName作为String
和[String: CustomStringConvertible]
格式的数据字典将任何相关信息传递给Crashlytics
import Crashlytics
final class CrashLogger {
static let shared = CrashLogger()
private init() { }
func logEvent(_ event: String, withData data: [String: CustomStringConvertible]) {
let dataString = data.reduce("Event: \(event): ", { (result, element: (key: String, value: CustomStringConvertible)) -> String in
return result + " (" + element.key + ": " + String(describing: element.value) + " )"
})
logEvent(dataString)
}
private func logEvent(_ message: String) {
CLSLogv("%@", getVaList([message]))
}
}
现在,只要您想在Crashlytics中记录自定义事件,就可以调用此logEvent
方法,当您在Firebase中查看任何崩溃时,该方法将在日志部分中可用。
使用方法:,例如电子商务应用程序中的addToCart
功能:
func addToCard(_ product: Product) {
CrashLogger.logEvent("addToCart", withData: ["productId": product.id, "productName": product.name)
//do further processing like update cart item count etc.
}
有关更多信息,请参考Crashlytics自定义日志记录docs。
答案 1 :(得分:0)
您可以通过下面的代码.recordError(NSERROR)
记录自定义活动。但是,我不建议您对此类“单击按钮”日志使用Crashlytics。使用某些Google Analytics(分析)工具,例如(Google Analytics(分析))。
let customError = NSError(domain: errorDomain, code: errorCode, userInfo: [
NSLocalizedDescriptionKey: message,
])
Crashlytics.sharedInstance().recordError(customError)