OSX 10.8がstdoutに出力され、stderrがConsole.appで終了しなくなりました。基本的なprint文を使ってデバッグ情報を出力するコードをサポートする必要があるため、NSLogを使わずにConsole.appに出力したいと考えています(バックグラウンド情報についてはhttps://bitbucket.org/ronaldoussoren/py2app/issue/77を参照してください)。ASLを使用してconsole.appにログを記録
NSLog出力は、 "syslog -C"を使用してこれらのログラインを表示できるので、ASL(Apple System Log)ログで「何とか」終了します。私は自分のアプリケーションにこのコードを追加しようとした理由です:
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);
これはやや作品:私は標準出力ストリームにラインを書くとき、それらの行は、ASLによって変換されます:出力は現在、通常のログの接頭辞が付けられ:
Nov 20 13:46:14 Gondolin.local py2app[43722] <Info>: Hello world from py2app launcher
しかし、ログファイルはASLデータストアまたはConsole.appで終了しません。
誰かが間違っていることを知っていますか?