2012-02-28 6 views
0

На Android я использую android.util.Log войти в мое приложение и в процессе разработки я использую adb logcat или Eclipse, чтобы увидеть журналы - я использую его даже больше, чем отладка ...Попадая журналы отладки - iPhone

На устройство Я могу сохранить файл журнала из своего кода или использовать некоторую форму приложения Android Market для сохранения журналов - например aLogCat.

Теперь я могу сделать то же самое на iPhone? Я могу использовать NSLog(@"message");, но могу ли я легко сохранить файл журнала из своего приложения и получить к нему доступ? Есть ли способы для этого?

С уважением, Sten

+0

Я думаю, что журналы записываются на часть диска, на которую ваше приложение не может читать. Вы можете получить ваши бета-тестеры, чтобы отправить их вам вручную. И я считаю, что яблоко может отправить вам журналы сбоев, отправленные им самими пользователями? Не уверен. В любом случае, это, вероятно, содержит личные данные, вы будете нарушать условия магазина приложений Apple, если вы отправляете их на удаленный сервер без разрешения пользователя. –

ответ

2

Это из NSFoundation reference

NSLog:

Просто вызывает NSLogv, передавая ему переменное число аргументов.

NSLogv:

Регистрирует сообщение об ошибке в объекте Apple, System Log (см 3 человек над уровнем моря). Если дескриптор файла STDERR_FILENO был перенаправлен от значения по умолчанию или отправляется в tty, он также будет записан там. Если вы хотите перенаправить вывод в другое место, вам нужно использовать собственный механизм ведения журнала.

Таким образом, это только вопрос перенаправления файлового дескриптора «stderr» (2) в пользовательский файл, и вы получите все, что вы распечатаете, используя NSLog в этом файле.

This похоже, именно то, что вы хотите.

Обратите внимание, что если вы хотите получить журналы на консоли, когда вы подключены к отладчику, вы можете обернуть ваш код вокруг этого, чтобы избежать перенаправления в этом случае:

if (!isatty(STDERR_FILENO)) { // Not connected to any terminal 
    // your redirection code 
} 
+0

Очень хорошо - теперь мы можем перенаправить журналы с консоли на файл и получить доступ к ним из iTunes - очень похоже на способ Android. благодаря – STeN

1

Вы можете получить доступ к журналу консоли от Organizer-> Device-> Ваш Device-> консоли.

Если это не достаточно эффективно, подумайте об использовании утилит, таких как NSLogger.

1

Предыдущие ответы хороши; также см. this, если вы склонны к системным вызовам.

Смежные вопросы