OSX 10.8 では、stdout および stderr への出力が Console.app に出力されなくなりました。基本的な print ステートメントを使用してデバッグ情報を出力するコードをサポートする必要があるため、NSLog を使用せずに Console.app で出力を取得したいと考えています (背景情報については、 https: //bitbucket.org/ronaldoussoren/py2app/issue/77 を参照してください)。 )。
NSLog 出力は、「syslog -C」を使用してこれらのログラインを表示できるため、「何とか」ASL (Apple システム ログ) ログに記録されます。そのため、このコードをアプリケーションに追加しようとしました:
aslclient c = asl_open("py2app", "com.apple.console", ASL_OPT_NO_DELAY);
int fd = dup(2);
asl_set_filter(c, ASL_FILTER_MASK_UPTO(ASL_LEVEL_DEBUG));
asl_add_log_file(c, fd);
asl_log(c, NULL, ASL_LEVEL_INFO, "Hello world from py2app launcher");
asl_log_descriptor(c, NULL, ASL_LEVEL_INFO, 1, ASL_LOG_DESCRIPTOR_WRITE);
asl_log_descriptor(c, NULL, ASL_LEVEL_INFO, 2, ASL_LOG_DESCRIPTOR_WRITE);
これは多少機能します: stdout ストリームに行を書き込むと、それらの行は ASL によって変換されます: 出力には通常のログ接頭辞が付けられます:
Nov 20 13:46:14 Gondolin.local py2app[43722] <Info>: Hello world from py2app launcher
ただし、ログファイルは ASL データストアまたは Console.app にはありません。
私が間違っていることを誰かが知っていますか?