zu loggen. In OSX 10.8 endet die Ausgabe zu stdout und stderr nicht mehr in Console.app. Ich möchte in Console.app ausgegeben werden, ohne NSLog zu verwenden, da ich Code unterstützen muss, der grundlegende print-Anweisungen verwendet, um Debug-Informationen zu drucken (für einige Hintergrundinformationen siehe https://bitbucket.org/ronaldoussoren/py2app/issue/77).Verwenden Sie ASL, um zu console.app
NSLog-Ausgabe endet in der ASL (Apple System Log) Protokoll "irgendwie", wie Sie diese Loglines mit "syslog -C" anzeigen können. Deshalb habe ich versucht, diesen Code zu meiner Anwendung hinzufügen:
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);
Diese etwas funktioniert: wenn ich Linien auf den stdout Stream schreibe diese Zeilen durch ASL umgewandelt bekommen: Der Ausgang wird nun durch üblichen Logging Präfix vorangestellt:
Nov 20 13:46:14 Gondolin.local py2app[43722] <Info>: Hello world from py2app launcher
Die Protokolldatei endet jedoch nicht im ASL-Datenspeicher oder in Console.app.
Weiß jemand, was ich falsch mache?