
[英]How to use Console.app to view debug-level logs from os_log from an iOS app running in the Simulator?
[英]os_log: Unexpected value for integer in Console.app and in `log stream`
代码(斯威夫特 3):
os_log("State changed: from %d to %d", 1, 2)
Xcode 8 (调试区域控制台):
2016-10-01 00:38:55.903298 AUHost[82455:1512026] State changed: from 1 to 2
终端(日志流):
2016-10-01 00:38:54.880763+0200 0x17125a Default 0x8000000000022d5e 82455 AUHost: State changed: from 1 to 1718550530
控制台应用程序:
State changed: from 1 to 1718550530
为什么Console.app和命令日志流显示意外值1718550530而不是2 ?
谢谢!
更新:
使用偶数个参数时观察到的意外行为:
os_log("View loaded: %d", 1)
os_log("View loaded: %d => %d", 1, 2)
os_log("View loaded: %d => %d => %d", 1, 2, 3)
os_log("View loaded: %d => %d => %d => %d", 1, 2, 3, 4)
os_log("View loaded: %d => %d => %d => %d => %d", 1, 2, 3, 4, 5)
输出:
View loaded: 1
View loaded: 1 => 1718550530
View loaded: 1 => 2 => 3
View loaded: 1 => 2 => 3 => 1718550532
View loaded: 1 => 2 => 3 => 4 => 5
看起来像一个错误。 向苹果报告: https : //openradar.appspot.com/28574572
截至今天(2020 年 7 月 21 日),在 Swift 5.something 和 Xcode 11.6 中,我在 iOS 应用程序中使用 os_log 时仍然遇到此问题。
这不是一个完整的修复,但对我有效的解决方法是在os_log()
调用之前将传入的Int
转换为String
(不要忘记将格式标记更改为%@
):
let intA = 7
let intB = 4
os_log("State changed: from %@ to %@", String(intA), String(intB))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.