2009-10-03 27 views
2

有沒有辦法強制抑制全部登錄Mac OS X桌面Cocoa應用程序?如何禁止在Cocoa應用程序中的所有日誌記錄?

有時候系統的某個部分或插件(不在你的控制之下)會代表你的應用程序將消息記錄到控制檯(system.log)中。

有沒有辦法在應用程序中禁止所有日誌記錄?

+0

爲什麼?如果您希望能夠過濾掉任何不是來源於您的代碼的日誌條目,那麼只需在您的日誌語句中添加一個特殊標記,然後grep即可。 – user57368 2009-10-03 00:55:08

+0

可能有很多原因。例如,也許你想阻止惡意的應用程序插件氾濫控制檯。 – 2009-10-03 01:19:04

+0

似乎你有一個與Apple Engineering直接討論的案例,圍繞沙箱和圍繞控制檯輸出。抑制來自惡意代碼的消息看起來是合適的(我可能會將它發送到/ dev/null),但似乎是錯誤的方式。 – 2009-10-03 11:53:10

回答

4

@gabe:正要建議類似的東西 - 只要嘗試過了,和一個簡單的「FCLOSE(錯誤) '似乎阻止了任何輸出。

+0

確實有竅門。 thx loren。 – 2009-10-03 02:25:50

0

我也做到了這一點,每當我需要控制檯輸出重定向到一個自定義視圖:

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

凡RedirectOutputToView原型如下:

int RedirectOutputToView(void *inFD, const char *buffer, int size); 
相關問題