2013-01-07 13 views
8

Sprawdzam, czy mogę uzyskać lepszą wydajność z asl_log niż NSLog na iPhone/iOS (prawdopodobnie ...), ale utknąłem w punkcie, w którym nie wydaje się, że wynik logu asl pojawi się w systemie Konsola (widoczna w wielu aplikacjach, takich jak konsola systemowa, iConsole itp.). Wiem, że ustawiam go poprawnie, ponieważ otwieram z ASL_OPT_STDERR i widzę wpisy dziennika w XCode, gdy urządzenie jest na uwięzi.jak uzyskać asl_log do wyświetlenia na wyjściu konsoli systemu iOS?

Ja zbadane wiele ciekawych rzeczy w Internecie (np http://boredzo.org/blog/archives/2008-01-20/asl-logging, https://github.com/robbiehanson/CocoaLumberjack) i najlepsza nadzieja zdawała się być asl_open() z obiektem z „com.apple.console”, ale niestety, wynik nadal nie pojawia się w konsoli. Czy NSLog jest jedyną opcją?

Odpowiedz

5

Musisz ustawić uprawnienia do odczytu wiadomości, używając ReadUID lub ReadGID. Ustawienie wartości -1 powoduje, że każdy użytkownik/grupa może wyświetlić wiadomość zgodnie z dokumentacją pliku nagłówkowego.

aslmsg msg = asl_new(ASL_TYPE_MSG); 
asl_set(msg, ASL_KEY_READ_UID, "-1"); 
asl_log(NULL, msg, ASL_LEVEL_NOTICE, "Hello, world!"); 
asl_free(msg); 
9

Dodaj STDERR ASL a następnie pokazuje się w konsoli

asl_add_log_file(NULL, STDERR_FILENO); 
Powiązane problemy