我正在使用CoreData的iOS/macOS项目中工作。它工作正常,但会向控制台输出大量调试信息。这使控制台无法使用,因为我的打印语句被埋在所有与CoreData相关的内容中。

我有一个非常简单的CoreData设置,可以读取一些数据,所以这些不是错误,只是一般的事件日志。我在使用CoreData的其他项目上也得到了相同的结果。

有什么方法可以减少/删除此日志到控制台?

一些样本数据(all data here):

CoreData: warning: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _

performExportWithRequest:]_block_invoke_2(946): Finished export: <PFCloudKitExporter: 0x2838bd840>
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _finishedRequest:withResult:](2102): Finished request: <NSCloudKitMirroringExportRequest: 0x2823bbb40> DC26CDEE-0AB6-42CD-81E5-996E7E7727F9 with result: <NSCloudKitMirroringResult: 0x282dfcfa0> success: 1 madeChanges: 0 error: (null)
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _scheduleAutomatedExportWithLabel:activity:completionHandler:]_block_invoke(2170): <NSCloudKitMirroringDelegate: 0x281ae4580> - Finished automatic export - AppActivationExport - with result: <NSCloudKitMirroringResult: 0x282dfcfa0> success: 1 madeChanges: 0 error: (null)
CoreData: warning: CoreData+CloudKit: -[NSCloudKitMirroringDelegate finishedAutomatedRequestWithResult:](2115): Finished request '<NSCloudKitMirroringExportRequest: 0x2823bbb40> DC26CDEE-0AB6-42CD-81E5-996E7E7727F9' with result: <NSCloudKitMirroringResult: 0x282dfcfa0> success: 1 madeChanges: 0 error: (null)
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate checkAndExecuteNextRequest](2073): <NSCloudKitMirroringDelegate: 0x281ae4580>: Checking for pending requests.
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate checkAndExecuteNextRequest]_block_invoke(2088): <NSCloudKitMirroringDelegate: 0x281ae4580>: No more requests to execute.
CoreData: CloudKit: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _scheduleAutomatedImportWithLabel:activity:completionHandler:](2140): <NSCloudKitMirroringDelegate: 0x281ae4580> - Beginning automated import - ImportActivity - in response to activity:
<CKSchedulerActivity: 0x280ec8f00; additionalXPCActivityCriteria={
    Priority = Utility;
}

最佳答案

尝试将它们添加为启动参数,看看是否有帮助

-com.apple.CoreData.SQLDebug 0
-com.apple.CoreData.Logging.stderr 0
-com.apple.CoreData.ConcurrencyDebug 0
-com.apple.CoreData.MigrationDebug 0

编辑1:
我在Apple文档中发现了这一点:
选择“产品>方案>编辑方案”。选择一个诸如“运行”之类的操作,然后选择“参数”选项卡。将带有调试级别值的com.apple.CoreData.CloudKitDebug用户默认设置作为应用程序的参数传递。
ios - 减少CoreData的调试输出?-LMLPHP
 -com.apple.CoreData.CloudKitDebug 0

将最后一个添加为启动参数,您应该实现所需的功能。

link to the AppleDocs
使用CloudKit 检查核心数据中名为的调试错误部分

关于ios - 减少CoreData的调试输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57905451/

10-13 02:24