我是一名老程序员,自学 macOS 并制作自己使用的工具。
我有一个应用程序可以有条件地启动 GUI,但是当它启动 GUI 时,系统会将日志信息打印到
stderr
。我怎样才能以编程方式防止这种情况?
我正在像这样启动 GUI:
NSApplication.shared.run()
我不希望来自操作系统的日志信息如下所示:
1 HIToolbox 0x00000001902e05c8 _ZN15MenuBarInstance22EnsureAutoShowObserverEv + 120
2 HIToolbox 0x00000001902e0188 _ZN15MenuBarInstance14EnableAutoShowEv + 60
3 HIToolbox 0x0000000190283310 SetMenuBarObscured + 372
4 HIToolbox 0x0000000190282ee8 _ZN13HIApplication15HandleActivatedEP14OpaqueEventRefhP15OpaqueWindowPtrh + 172
5 HIToolbox 0x000000019027cfcc _ZN13HIApplication13EventObserverEjP14OpaqueEventRefPv + 296
6 HIToolbox 0x0000000190243cd0 _NotifyEventLoopObservers + 176
7 HIToolbox 0x000000019027c96c AcquireEventFromQueue + 432
8 HIToolbox 0x000000019026be0c ReceiveNextEventCommon + 712
9 HIToolbox 0x000000019026bb2c _BlockUntilNextEventMatchingListInModeWithFilter + 72
10 AppKit 0x0000000189e18424 _DPSNextEvent + 632
11 AppKit 0x0000000189e175b4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 728
12 AppKit 0x0000000189e0b9e4 -[NSApplication run] + 464
13 macos-cond-gui 0x0000000104cd0764 main + 2148
14 dyld 0x000000018678fe50 start + 2544
我意识到我可以重定向
stderr
。我正在寻找一种编程解决方案,以便应用程序不会将其强加给用户。我还想将我自己的消息输出到 stderr
,我不想隐藏这些消息。