ios - 设备控制台中仅显示崩溃日志
问题描述
使用 Xcode 12 和 NSLog 记录我的消息。当我打开“窗口 -> 设备和模拟器”并在 iPhone 上查看我的应用程序的日志文件时,我只看到崩溃日志(我和其他人的应用程序的崩溃日志)。有没有办法只查看我的常规日志消息?NSLog 输出显示在控制台中,没问题。谢谢....
解决方案
(Swift 5.3、Xcode 12、iOS 14 —无需第三方服务或库)
简而言之:您可以将您的NSLog
呼叫替换为对 的呼叫Logger
。
您需要创建一个Logger
对象(在某个地方,您的偏好)。如果你愿意,你可以让你的日志更容易过滤,例如在控制台应用程序中,通过在你的应用程序中为不同的部分/功能制作各种记录器。
import os.log
let downloadLogger = Logger(subsystem: "My app", category: "Downloading")
let somethingLogger = Logger(subsystem: "My app", category: "Lorem ipsum")
然后你像这样调用你的记录器:
// Some error occurs, so we log it:
downloadLogger.error("Error downloading feed contents: \(error, privacy: .public)")
// Some less important log:
somethingLogger.info("Secret has been stored: \(mySecret, privacy: .private(mask: .hash))")
注意我们的秘密是通过申请保密的.private(mask: .hash)
。
要查看和过滤您的日志,请在“设备”屏幕上的“查看设备日志”下方找到Open Console。
正如文章来源所说:
“如果您想从设备收集日志,即使您的应用程序不再运行,您也可以
log
在 Mac 上使用带有collect
选项的命令……logarchive
然后可以在控制台应用程序中打开您获得的文件并进行过滤就像实时日志一样。”
sudo log collect --device --start "2020-06-25 16:10:00" --output myapp.logarchive
(来源:来源)
推荐阅读
- google-api - SSML Speak 标签 begin 属性的绝对值
- julia - 为什么我没有得到与 Complex(::Sym) 匹配的方法?
- spring - Mockito 测试归零
- sql-server - SQL Server 2017 中的 OUTPUT 参数的存储过程返回 null
- java - 如何在 JAVA 中以二维数组功能方式交换元素
- java - 带有 GraphQL 的 Spring Boot - 架构问题
- c - 用数组中的另一个数据序列替换一个数据序列
- javascript - 选项标签 - 在同一选项卡中打开页面
- postman - 如何从邮递员的响应标头中提取特定的字符串值?
- function - postgresql函数的输出问题