Objective c 如何禁止所有登录Cocoa应用程序?
有没有办法强制禁止Mac OS X桌面应用程序中的所有日志记录 有时,系统的某些部分或插件(您无法控制)会代表您的应用程序将消息记录到控制台(system.log)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
有没有办法禁止应用程序中的所有日志记录?您可以使用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)。