使用 Logger 打印调试信息

了解如何使用 os 库提供的 logger 打印调试信息,提高开发调试的效率。

使用 Logger 打印调试信息

Logger 是 Apple 在 iOS 14 引入的,是 Apple 推荐的现代日志记录方式。

Logger | Apple Developer Documentation
An object for writing interpolated string messages to the unified logging system.

它比普通的 print 语句提供了更多的控制和过滤能力,便于调试复杂问题。

logger.debug()

初始化 Logger

Logger 定义在os 模块中,使用方式更加 Swift 风格。

首先需要导入 os 模块:

import os

初始化 logger

let logger = Logger(subsystem: "com.yourapp.identifier", category: "network")
  • subsystem 是你 App 的唯一标识符,通常使用你的 Bundle Identifier。在 Console.app 中可以用 subsystem 精确筛选日志。如果你写了多个模块/组件库,可以用不同的 subsystem 区分。
  • category 是你自定义的日志类别,用于进一步细分日志来源,方便你在调试时过滤出某类日志(比如只看网络相关的 log)。比如:
"network"、"ui"、"database"、"auth"

这样你在使用 Console.app 查看日志时,可以快速定位和过滤,提升调试效率,尤其在 App 崩溃或异步任务出问题时特别有用。

使用 Logger

import os

let logger = Logger(subsystem: "com.yourapp.identifier", category: "network")

logger.debug("Network request started.")
logger.info("User logged in: \(userID, privacy: .public)")
logger.error("Failed to fetch data: \(error.localizedDescription)")
logger.debug()
print()

使用 logger 输出时,可以在 Xcode 控制台中设置显示哪些数据: