为什么 Crashlytics 中缺少 CLSLog 消息?
Why CLSLog messages are missing in Crashlytics?
我有一个应用程序将其崩溃记录到 Fabric 的 Crashlytics 平台。
崩溃日志按预期工作,因为可以通过平台的仪表板观察到。但是,对命令 CLSLog
的调用似乎没有按预期工作。崩溃会话的日志面板未显示正确的日志输出。
这是我们在应用程序中使用 CLSLog
的方式:
CLSLogv(message, getVaList([""]))
有人可以指出导致此问题的可能原因吗?
这里是来自 Fabric 的迈克。如果记录了空值或 nil 值,则不会显示任何日志记录。您在发帖时是否截断了实际记录的内容?
您的 CLSLogv
格式似乎有误。请尝试以下内容
CLSLogv("%@", getVaList([message]))
因为根据 fabric 自定义日志 doc
Swift string interpolation will not result in a compile-time constant
string. Just like with printf and NSLog, using a non-constant string
with CLSLog can result in a crash.
此解决方案可能有些不同寻常,但我们在应用程序中所做的是在 Objective-C 中实施 crashlytics 登录,因为我记得我们遇到过类似的问题。
我们最终定义了一个自定义日志函数,然后使用 CLSLog
代替。好处是您不会在整个代码库中泄漏 Crashlytics,因此如果您想要添加其他记录器或使用新框架,您是安全的。
为了说明我们将有:
- (void)logMessage:(NSString *)message {
CLSLog(@"%@", message);
}
然后您可以定义一个 Swift 记录器,它将只使用 objective-c 函数来调用。
我们的实施依赖于 cocoa-lumberjack,因为我们有多个记录器等,但您应该明白这个想法,并希望再次写下你们的 Objective-C
我有一个应用程序将其崩溃记录到 Fabric 的 Crashlytics 平台。
崩溃日志按预期工作,因为可以通过平台的仪表板观察到。但是,对命令 CLSLog
的调用似乎没有按预期工作。崩溃会话的日志面板未显示正确的日志输出。
这是我们在应用程序中使用 CLSLog
的方式:
CLSLogv(message, getVaList([""]))
有人可以指出导致此问题的可能原因吗?
这里是来自 Fabric 的迈克。如果记录了空值或 nil 值,则不会显示任何日志记录。您在发帖时是否截断了实际记录的内容?
您的 CLSLogv
格式似乎有误。请尝试以下内容
CLSLogv("%@", getVaList([message]))
因为根据 fabric 自定义日志 doc
Swift string interpolation will not result in a compile-time constant string. Just like with printf and NSLog, using a non-constant string with CLSLog can result in a crash.
此解决方案可能有些不同寻常,但我们在应用程序中所做的是在 Objective-C 中实施 crashlytics 登录,因为我记得我们遇到过类似的问题。
我们最终定义了一个自定义日志函数,然后使用 CLSLog
代替。好处是您不会在整个代码库中泄漏 Crashlytics,因此如果您想要添加其他记录器或使用新框架,您是安全的。
为了说明我们将有:
- (void)logMessage:(NSString *)message {
CLSLog(@"%@", message);
}
然后您可以定义一个 Swift 记录器,它将只使用 objective-c 函数来调用。
我们的实施依赖于 cocoa-lumberjack,因为我们有多个记录器等,但您应该明白这个想法,并希望再次写下你们的 Objective-C