iOS 记录器不打印到 Xcode 控制台

iOS Logger does not print to the Xcode console

我正在尝试将 CocoaLumberjack 换成 iOS 本机 Logger。唯一的问题是记录器消息没有记录到 Xcode 控制台。在 WWDC20 视频 探索登录 Swift 中,Ravi 在 09:02 中指出“如果您的应用程序是从 Xcode 启动的,您将在 Xcode 的控制台中看到它们。" 但是,我没有看到消息。还有其他人试过吗?

使用 Xcode 13.4

这是代码……

import os

extension Logger {

    private static var subsystem = Bundle.main.bundleIdentifier ?? ""

    public static func logDebug(message: String, category: String) {
        logger(category: category)
            .debug("\(message, privacy: .public)")
    }

    public static func logInfo(message: String, category: String) {
        logger(category: category)
            .info("\(message, privacy: .public)")
    }

    public static func logNotice(message: String, category: String) {
        logger(category: category)
            .notice("\(message, privacy: .public)")
    }

    public static func logError(message: String, category: String) {
        logger(category: category)
            .error("\(message, privacy: .public)")
    }

    private static func logger(category: String) -> Logger {
        Logger(subsystem: subsystem, category: category)
    }
}

这里是调用站点...

Logger.logNotice(message: "Firebase dispatch event -> \(name) || Parameters -> \(parameters.debugDescription)",
                 category: String(describing: FirebaseSDKDispatch.self))

如果我从头开始创建一个新应用程序,它确实有效。我需要进一步调查我的商业应用程序。

import os
import UIKit

class ViewController: UIViewController {

    let log = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "app")
    override func viewDidLoad() {
        super.viewDidLoad()
        log.debug("You better print in the Xcode console!")
    }
}