Это от NSFoundation ссылка
NSLog:
Просто вызывает NSLogv, передавая ему переменное число аргументов.
NSLogv:
Записывает сообщение об ошибке в средство Apple System Log (см. Man 3 asl). Если дескриптор файла STDERR_FILENO был перенаправлен за пределы по умолчанию или идет в tty, он также будет записан там. Если вы хотите направить вывод в другое место, вам нужно использовать пользовательские средства ведения журнала.
Таким образом, это всего лишь вопрос перенаправления дескриптора файла "stderr" (2) в пользовательский файл, и вы получите все, что вы печатаете, используя NSLog в этом файле.
Это , кажется, именно то, что вы хотите.
Обратите внимание, что если вы хотите получать журналы на консоли, когда вы подключены к отладчику, вы можете обернуть свой код вокруг этого, чтобы избежать перенаправления в этом случае:
if (!isatty(STDERR_FILENO)) { // Not connected to any terminal
// your redirection code
}