【问题标题】:How do you disable os_log_info and os_log_debug messages in Xcode console?如何在 Xcode 控制台中禁用 os_log_info 和 os_log_debug 消息?
【发布时间】:2017-04-29 19:08:53
【问题描述】:

用于记录的现代 API 在终端中很容易配置。但是,Xcode 似乎输出了所有级别,包括 INFO 和 DEBUG,这很烦人。因为大多数时候您只想看到 os_log_errorNSLog 也就是“出了点问题”和“这很重要”。

那么有没有办法在 Xcode 控制台中只显示特定级别?

os_log_info(OS_LOG_DEFAULT, "Info");
os_log_debug(OS_LOG_DEFAULT, "Debug");
os_log_error(OS_LOG_DEFAULT, "Error");
os_log_fault(OS_LOG_DEFAULT, "Fault");
os_log(OS_LOG_DEFAULT, "Default");
NSLog(@"NSLog");

当前输出:

2016-12-14 15:37:00.170807 Test[5681:2205834] Info
2016-12-14 15:37:00.170830 Test[5681:2205834] Debug
2016-12-14 15:37:00.170835 Test[5681:2205834] Error
2016-12-14 15:37:00.170839 Test[5681:2205834] Fault
2016-12-14 15:37:00.170860 Test[5681:2205834] Default
2016-12-14 15:37:00.170869 Test[5681:2205834] NSLog

首选输出:

2016-12-14 15:37:00.170835 Test[5681:2205834] Error
2016-12-14 15:37:00.170839 Test[5681:2205834] Fault
2016-12-14 15:37:00.170860 Test[5681:2205834] Default
2016-12-14 15:37:00.170869 Test[5681:2205834] NSLog

【问题讨论】:

  • 试试这个 OS_ACTIVITY_MODE = 禁用
  • 这将隐藏所有消息,但 NSLog 与我想要的完全不同。

标签: ios xcode logging terminal console


【解决方案1】:

我使用了 DTS,并从一位 Apple 工程师那里得到了答案:

新的统一日志系统是一个相对较新的添加,可惜 Xcode 还没有赶上它。如果您希望看到 Xcode 支持日志过滤的未来版本,我鼓励您提交描述您的要求的增强请求。

所以请复制rdar://28288063,请求越多越好。谢谢!


更新:如下 Max 所述,您可以修改自定义日志的可见性:

os_log_t custom = os_log_create("com.acme.demo", "custom");
os_log_info(custom, "Info");
os_log_debug(custom, "Debug");
os_log_error(custom, "Error");
os_log_fault(custom, "Fault");
os_log(custom, "Default");

以下 Terminal 命令将抑制 Xcode 中的“Info”和“Debug”字符串:

sudo log config --mode "level:default" --subsystem "com.acme.demo"

重置系统默认值:

sudo log config -reset --subsystem "com.acme.demo"

检查当前状态:

sudo log config --subsystem "com.acme.demo"

【讨论】:

    【解决方案2】:

    您可以在终端中切换调试级别:

    $ sudo log config --mode "level:debug" --subsystem com.your_company.your_subsystem_name
    

    检查您当前的等级:

    $ sudo log config --status --subsystem com.your_company.your_subsystem_name
    Mode for 'com.your_company.your_subsystem_name'  DEBUG
    

    欲了解更多信息,请参阅Apple Documentation

    【讨论】:

      【解决方案3】:

      通过在方案的环境变量部分中将OS_ACTIVITY_MODE 设置为default,我已经设法获得了预期的效果。

      编辑: 我看到这仅省略了调试日志级别。信息仍然显示。

      【讨论】:

        猜你喜欢
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 2015-07-29
        • 1970-01-01
        • 2010-09-27
        • 2019-12-10
        • 2013-03-19
        • 1970-01-01
        相关资源
        最近更新 更多