Log (日誌)

豆知識

Log 使用方法

print

let str: String? = "Hello"

// Optional("Hello")
print(str)

debugPrint

let str: String? = "Hello"

// "Hello"
debugPrint(str)

dump

struct User {
    let id: Int
    let name: String
}
let user = User(id: 1, name: "Alice")

// ▿ User
//  - id: 1
//  - name: "Alice"
dump(user)

NSLog

// 2025-02-10 12:34:56.789000+0800 MyApp[12345:67890] 這是一條重要訊息
NSLog("這是一條重要訊息")

OSLog

os_log

import OSLog

// subsystem 使用逆域名 (Bundle Identifier)
private var subsystem = Bundle.main.bundleIdentifier!

let oslog = OSLog(subsystem: subsystem, category: "Test")

// privacy: OK
os_log(.default, log: oslog, "privacy: \("OK", privacy: .public)")

// privacy: <private>
os_log(.default, log: oslog, "privacy: \("OK", privacy: .private)")

Logger

import OSLog

// subsystem 使用逆域名 (Bundle Identifier)
private var subsystem = Bundle.main.bundleIdentifier!

extension Logger {
    static let test = Logger(subsystem: subsystem, category: "Test")
}

// privacy: OK
Logger.test.notice( "privacy: \("OK", privacy: .public)")

// privacy: <private>
Logger.test.notice( "privacy: \("OK", privacy: .private)")

Console.app (系統監視程式)

[篩選條件]:[值]

索引