Chciałbym przekierować NSog()
do pliku, ale nadal, aby zobaczyć wyjście w konsoli. Jestem świadomy, że stderr
może zostać przekierowany do pliku przy użyciu:NSLog() do konsoli i pliku
freopen("file.log", "a+", stderr);
ale po skierowanie go do pliku dziennika nie jest już pokazany na wyjściu konsoli.
Mogłem zbudować niestandardową owijkę wokół NSLog()
, ale nie dostałbym zarejestrowanych dzienników awarii, które są zapisywane do stderr
w momencie awarii aplikacji.
Eksperymentowałem również z dup()
i innymi metodami powielania deskryptorów plików, ale wynik był eterem w pliku lub w konsoli, nigdy w obu.
Podobne pytania zadawano tutaj: Write stderr on iPhone to both file and console ale bez akceptowanej odpowiedzi lub z sugestią użycia opakowania NSLog().
Czy ktoś ma pomysł, jak zarządzać tą pracą? Thanx z góry.
UPDATE: Najważniejszą częścią przekierowania jest mieć logi błędów systemowych (stderr) pisemne zarówno konsoli i pliku.
Co zrobić, jeśli wykonasz dwa oddzielne logi, wyślesz jeden do pliku, a drugi do konsoli, ale zachowasz je tak samo? – JTApps
Jak sugerujesz radzić sobie z tym? Najważniejsze jest, aby logi błędów systemu były zapisywane zarówno na konsoli, jak i na pliku. –
'NSLog' domyślnie loguje się do konsoli, może mógłbyś po prostu wyciągnąć logi z tego miejsca http://stackoverflow.com/questions/7150849/how-can-i-get-a-console-readout-at-runtime-in -an-application/7151773 # 7151773 – Joe