有没有办法在Mac OS X桌面Cocoa应用程序中强制抑制所有日志记录?
有时,系统的某些部分或插件(不受您控制)会代表您的应用程序将消息记录到控制台(system.log)。
有没有办法抑制应用程序中的所有日志记录?
答案 0 :(得分:4)
您可以使用freopen来更改stdout和sterr指向的位置:
http://www.opengroup.org/onlinepubs/000095399/functions/freopen.html
答案 1 :(得分:4)
@gabe:刚刚提出类似的建议 - 只是试了一下,一个简单的'fclose(stderr)'似乎阻止了任何输出。
答案 2 :(得分:0)
每当我需要将控制台输出重定向到自定义视图时,我也会这样做:
stderr->_write = RedirectOutputToView;
stdout->_write = RedirectOutputToView;
RedirectOutputToView具有以下原型:
int RedirectOutputToView(void *inFD, const char *buffer, int size);