苹果的Unified Logging文档指出:
消息中不要包含符号信息或源文件行号。系统自动捕获此信息。
但是在控制台中,我看不到文件名,类名,函数名或行号。
我该如何记录在日志中?
事实上,即使是 macOS Catalina beta(版本 19A501i)也不会在Console.app 中显示源代码行。
但是,log命令行工具会显示模拟设备(macOS 10.14 及更高版本)的源信息。
以下命令将显示当前在模拟器中启动(运行)的所有模拟设备的日志信息。如果当前没有模拟设备正在运行,该命令将失败。
xcrun simctl spawn booted log stream --level debug --color always --source
您可以通过在os_log调用中使用子系统并将谓词应用于流式记录的数据来过滤掉不是来自您的程序的所有内容。例如,如果您的子系统是com.subsystem.my,则可以使用
xcrun simctl spawn booted log stream --level debug --color always --predicate '(subsystem BEGINSWITH "com.subsystem.my")' --source
源代码信息将显示在 TTL 列之后。
您还可以按进程(即目标名称)进行过滤,以防您没有设置子系统
xcrun simctl spawn booted log stream --level debug --color always --predicate '(process == "MyProcess")' --source
但是,这通常会导致过多的日志消息,因为其他框架记录的信息也将包含在内。
此外,booted您可以使用实际模拟设备的名称(仅从该设备流式传输日志数据)来代替。
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |