2

有没有办法强制禁止Mac OS X 桌面 Cocoa 应用程序中的所有日志记录?

有时系统的某些部分或插件(这是您无法控制的)会代表您的应用程序将消息记录到控制台(system.log)。

有没有办法抑制应用程序中的所有日志记录?

4

3 回答 3

4

您可以使用 freopen 更改 stdout 和 sterr 指向的位置:

http://www.opengroup.org/onlinepubs/000095399/functions/freopen.html

于 2009-10-03T01:28:22.020 回答
4

@gabe:只是想提出类似的建议-只是尝试了一下,一个简单的'fclose(stderr)'似乎可以阻止任何输出。

于 2009-10-03T01:35:29.117 回答
0

每当我需要将控制台输出重定向到自定义视图时,我也会这样做:

stderr->_write = RedirectOutputToView;
stdout->_write = RedirectOutputToView;

其中 RedirectOutputToView 具有以下原型:

int RedirectOutputToView(void *inFD, const char *buffer, int size);
于 2009-10-12T00:34:33.410 回答