Swift 如何打开/查看设备上存储的iOS OSLOG?
我正在使用苹果的Swift 如何打开/查看设备上存储的iOS OSLOG?,swift,xcode,logging,oslog,Swift,Xcode,Logging,Oslog,我正在使用苹果的os.log框架创建日志。我只是在做这样的日志: os_log("Update: Lat: %{public}f | Long: %{private}f | RemainingTime: %{public}f ", log: log, type: .default, location.coordinate.latitude, location.coordinate.longitude, UIApplication.shared.backgroundTimeRemaining).
os.log
框架创建日志。我只是在做这样的日志:
os_log("Update: Lat: %{public}f | Long: %{private}f | RemainingTime: %{public}f ", log: log, type: .default, location.coordinate.latitude, location.coordinate.longitude, UIApplication.shared.backgroundTimeRemaining).
我确实在控制台和调试器中看到了日志
我已经阅读并成功下载了该容器(只是不确定该容器是否包含我要查找的内容,或者该位置是否正确)。然后单击“显示软件包”:
但在那之后,我只看到:
我查了所有的档案。这些文件只包含如下数字:
我应该做些额外的事还是找错地方了
EDIT1:根据日航的建议: 我查看了(文档、库、tmp)。有
plist
和ktx
文件。和function.data
和map.data
文件
我查看了这些文件:
还有这些文件:
我试着用控制台打开它们,但我得到了乱七八糟的结果,如下图所示:
EDIT2: 因此,首先我没有权限打开
/var/db/diagnostics
,我必须执行sudobash
。然后我做了cd/var/db/diagnostics
并查看了这些文件
Events
FaultsAndErrors
Oversize
SpecialHandling
StateDumps
TTL
logdata.Persistent.20170724T212501.tracev3
logdata.Persistent.20170725T015616.tracev3
logdata.Persistent.20170725T134017.tracev3
logdata.Persistent.20170725T171020.tracev3
logdata.Persistent.20170725T213354.tracev3
logdata.Persistent.20170726T002702.tracev3
logdata.Persistent.20170726T144412.tracev3
logdata.Persistent.20170726T202128.tracev3
logdata.Persistent.20170727T021506.tracev3
logdata.Persistent.20170727T033929.tracev3
logdata.Persistent.20170727T075325.tracev3
logdata.Persistent.20170727T145233.tracev3
logdata.statistics.0.txt
logdata.statistics.1.txt
shutdown.log
然后我打开了一个控制台logdata.Persistent.20170725T015616.tracev3(我也尝试了其他
.tracev3
文件),但控制台只是打开并开始实时跟踪,就像我正常打开控制台一样…您没有在问题中指定iOS、macOS或TVO,因此,我在所有平台上保持我的答案通用
复习
日志数据以新的压缩二进制格式存储(.tracev3
或.logarchive
文件),这就是那些“数字”。必须使用Console.app或log
命令行工具打开这些文件
Events
FaultsAndErrors
Oversize
SpecialHandling
StateDumps
TTL
logdata.Persistent.20170724T212501.tracev3
logdata.Persistent.20170725T015616.tracev3
logdata.Persistent.20170725T134017.tracev3
logdata.Persistent.20170725T171020.tracev3
logdata.Persistent.20170725T213354.tracev3
logdata.Persistent.20170726T002702.tracev3
logdata.Persistent.20170726T144412.tracev3
logdata.Persistent.20170726T202128.tracev3
logdata.Persistent.20170727T021506.tracev3
logdata.Persistent.20170727T033929.tracev3
logdata.Persistent.20170727T075325.tracev3
logdata.Persistent.20170727T145233.tracev3
logdata.statistics.0.txt
logdata.statistics.1.txt
shutdown.log
您在错误的位置查找日志文件。从会话视频中:
这些文件现在存储在/var/db/diagnostics下,其他支持文件存储在/var/db/uuidtext中。有新的工具来访问数据,有新的控制台,新的日志命令行工具,您必须记住的一件事是,因为数据现在以二进制格式存储,所以您必须使用新的工具来访问它。所以你不能再浏览日志了,你必须使用我们的工具来浏览日志
还有另一种新类型的文件.logarchive,用于日志数据的可移植性。实际上,.logarchive是从/var/db/diagnostics中收集信息的集合,您可以将uuidtext收集到一个文件中,该文件更易于传输到电子邮件、附加到错误报告等
如果将stdout或stderr重定向到某个文件(例如中的代码),则该文件应位于应用程序沙盒的Documents目录(或指定的任何目录)中。写入/var/db/diagnostics的日志通常对iOS和tvOS上的最终用户不可用。您的问题中没有指定iOS、macOS或tvOS,因此我将在所有平台上保留通用答案 复习 日志数据以新的压缩二进制格式存储(
.tracev3
或.logarchive
文件),这就是那些“数字”。必须使用Console.app或log
命令行工具打开这些文件
Events
FaultsAndErrors
Oversize
SpecialHandling
StateDumps
TTL
logdata.Persistent.20170724T212501.tracev3
logdata.Persistent.20170725T015616.tracev3
logdata.Persistent.20170725T134017.tracev3
logdata.Persistent.20170725T171020.tracev3
logdata.Persistent.20170725T213354.tracev3
logdata.Persistent.20170726T002702.tracev3
logdata.Persistent.20170726T144412.tracev3
logdata.Persistent.20170726T202128.tracev3
logdata.Persistent.20170727T021506.tracev3
logdata.Persistent.20170727T033929.tracev3
logdata.Persistent.20170727T075325.tracev3
logdata.Persistent.20170727T145233.tracev3
logdata.statistics.0.txt
logdata.statistics.1.txt
shutdown.log
您在错误的位置查找日志文件。从会话视频中:
这些文件现在存储在/var/db/diagnostics下,其他支持文件存储在/var/db/uuidtext中。有新的工具来访问数据,有新的控制台,新的日志命令行工具,您必须记住的一件事是,因为数据现在以二进制格式存储,所以您必须使用新的工具来访问它。所以你不能再浏览日志了,你必须使用我们的工具来浏览日志
还有另一种新类型的文件.logarchive,用于日志数据的可移植性。实际上,.logarchive是从/var/db/diagnostics中收集信息的集合,您可以将uuidtext收集到一个文件中,该文件更易于传输到电子邮件、附加到错误报告等
如果将stdout或stderr重定向到某个文件(例如中的代码),则该文件应位于应用程序沙盒的Documents目录(或指定的任何目录)中。写入/var/db/diagnostics的日志通常对iOS和tvOS上的最终用户不可用。按照answer的建议,我能够将日志重定向到我的应用程序沙箱的文档目录中,然后我能够使用answer下载我的容器/沙箱 单击“显示软件包内容”后,我发现: 我使用console打开了日志文件,得到的结果是: 经度应该显示为
private
,但因为我让它通过Xcode ie调试模式运行,所以该字段仍然是公共的
您还可以远程检索日志,而无需任何特定设置。
- 触发一个事件
- 使用Airdrop并将sysdiagnose共享到您的mac
- 取消对sysdiagnose文件的归档。它将如下所示:
- 使用Console.app打开
系统日志.logarchive
- 就好像你连接到了Console.app。您可以按子系统、日志级别、类别和时间进行筛选。它将如下所示:
注意:搜索和过滤相当慢。有时需要2分钟。如果你过滤掉那些你不在乎的日期,可能会有所帮助。您可以使用底部的文件管理器来实现这一点。您必须等待右下角的加载存档微调器完成加载在遵循answer的建议后,我能够将日志重定向到我的应用程序沙盒的文档目录中,然后我能够使用answer下载我的容器/沙盒 单击“显示软件包内容”后,我发现: 我