如何在Xcode控制台中禁用os_log_info和os_log_debug消息?

8

现代日志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 = disable - jignesh Vadadoriya
这会隐藏所有消息,但NSLog是完全不同于我想要的。 - Vadim
3个回答

13

我使用了DTS并得到了一位苹果工程师的答复:

新的统一日志记录系统是最近增加的,但遗憾的是,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");
以下的终端命令将抑制Xcode中的“Info”和“Debug”字符串:

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

export XCODE_SIMULATOR_LEGACY_HIDE_DEBBUG_AREA=1
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"

4
您可以在终端中切换调试级别:
$ 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

更多信息请参见苹果文档

0

我已经成功地通过在方案的环境变量部分将OS_ACTIVITY_MODE设置为default来获得所需的效果。

编辑: 我发现这只省略了调试日志级别。信息仍然显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接