Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何禁止所有登录Cocoa应用程序?_Objective C_Cocoa_Macos_Appkit - Fatal编程技术网

Objective c 如何禁止所有登录Cocoa应用程序?

Objective c 如何禁止所有登录Cocoa应用程序?,objective-c,cocoa,macos,appkit,Objective C,Cocoa,Macos,Appkit,有没有办法强制禁止Mac OS X桌面应用程序中的所有日志记录 有时,系统的某些部分或插件(您无法控制)会代表您的应用程序将消息记录到控制台(system.log) 有没有办法禁止应用程序中的所有日志记录?您可以使用freopen更改stdout和sterr指向的位置: @gabe:我只是想提出一些类似的建议-只是尝试一下,一个简单的“fclose(stderr)”似乎可以阻止任何输出。每当我需要将控制台输出重定向到自定义视图时,我也会这样做: stderr->_write = Redir

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

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


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

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


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

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

stderr->_write = RedirectOutputToView;
stdout->_write = RedirectOutputToView;
其中,RedirectOutputView具有以下原型:

int RedirectOutputToView(void *inFD, const char *buffer, int size);

为什么?如果你想过滤掉任何不是源于代码的日志条目,那么只需在日志语句中添加一个特殊的标记,并为此进行grep。例如,你可能想阻止你的应用程序的恶意插件充斥控制台;围绕沙盒和控制台输出。抑制来自恶意代码的消息似乎是权宜之计(我可能会将其发送到/dev/null),但似乎是错误的做法。我认为这不会影响ASL(NSLog使用的是ASL)。