为什么推荐你使用 Xcode 15 的结构化打印?

前言

在日常的开发中,我们需要在 Xcode 控制台打印大量的日志用于调试,这些日志慢慢积累的多了之后可能会变得不堪重负,慢慢的甚至会恶化到不可用的状态。

在 Xcode 15 中,Apple 的开发人员尝试解决这个问题,在 Xcode 的控制台终于支持过滤功能了,今天来讲讲这个新功能。

Logger 类型

日志记录的 API 在 iOS 14 中引入了 Logger 类型,它可以很方便的记录 log,下面是如何使用 Logger 类型的示例:

css 复制代码
let logger = Logger(subsystem: "my_system", category: "my_category")
logger.log("这是一个 Log 信息")
logger.info("这是一个 info 信息")
logger.warning("这是一个 warning 信息")
logger.debug("这是一个 Debug 信息")
logger.error("这是一个 Error 信息")
logger.fault("这是一个 fault 信息")

在控制台看到的效果:

一些高级用法

1. 查看 log 详细信息

在控制台中,如果我们想检查单个日志行,那么我们可以单击这一行日志并按空格键,这将打开一个新的信息窗口,窗口中会展示跟这个日志相关的详细信息:

这里可以看到这条日志的类型、时间、Subsystem、Category 以及调用方法等等。

2. 直接在 log 中显示详细信息

如果觉得每次点击 + 空格比较麻烦,还可以在下边的 MetaData Options 按钮中打开要显示的信息:

然后就可以在每条日志上看到对应的信息了:

3. 快捷跳转 log 所在的源代码中

把鼠标在某条日志上停留一下,就会在这条日志的右下角出现一个提示,标记这个 log 是在哪个文件的哪一行打印的,点击右侧的箭头可直接跳转到对应的代码中:

4. 日志过滤

在控制台的右下角有个 filter 的输入框,可以在这个输入框中进行日志的过滤,比如我只想看 my_category 这个类型的日志,那么就可以在输入框中输入 my_category 根据提示来增加过滤:

可过滤的条件有很多,可以点击左侧的按钮查看:

继续在输入框中输入,还可以增加其他的过滤条件:

这个功能可以说非常强大,而且非常方便了,如果你已经升级了 Xcode 15,强烈推荐你的项目在开发时使用起来。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
茶底世界之下3 天前
为什么预览、录制、离线导出不能共享同一个背压策略?
ios·swift
2501_916007473 天前
苹果商店iOS应用上架费用全面解析:开发者计划与审核费用计算
android·ios·小程序·https·uni-app·iphone·webview
2501_916008893 天前
如何实现iOS App代码混淆:SwiftShield使用指南
android·ios·小程序·https·uni-app·iphone·webview
2501_915909063 天前
移动端开发工具链怎么组合比较好,iOS、Android、跨端三套配置方案
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
东坡肘子3 天前
一场关于 SwiftUI 动画的“原生”之争 -- 肘子的 Swift 周报 #154
人工智能·swiftui·swift
2501_916008893 天前
怎么用 Godot 导出 iOS 应用并上架 App Store?签名字段该填什么?
android·ios·小程序·https·uni-app·iphone·webview
2501_915918414 天前
iOS编程用什么软件好?主流工具Xcode、AppCode、CodeRunner与新兴快蝎对比
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
终端安全笔记4 天前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机
9765033354 天前
iOS 上架 4.3a 被拒【uniapp专讲】
flutter·ios·objective-c·uniapp·swift
黑化旺仔5 天前
【OC】KVO
macos·ios·objective-c·cocoa