Я ищу способ, чтобы захватить все NSLog выхода в качестве NSArray или любой другой структуру памяти, сохраняя при этом своих журналах консоли нетронутыми. Я создаю инструмент, который по запросу отправляет копию последних строк журнала X на сервер. До сих пор эти варианты, которые я исключил:Захвата NSLog выход в структуре памяти
- Я не могу перенаправить NSLog в файл, как предложено here, поскольку это будет также удалить все сообщения журнала из консоли.
- Я пробовал swizzling NSLog с другой настраиваемой функцией, но у меня возникли проблемы с поиском функций Swizzle C в отличие от методов класса.
- Обертка NSLog в моей собственной функции CustomLog возможна, но я предпочел бы иметь ее в качестве последнего средства. Проект довольно большой, и слишком много вызовов для замены. Я также боюсь потерять консольный вывод из библиотек, где было бы сложно добавить свой CustomLog.
Я искал способ перехвата вывода NSLog или захвата журналов после того, как они были напечатаны на консоли, но я не смог найти ничего, что сработало. Какие-либо предложения?
Обновление: Я закончил переосмысление подхода, и я заменил все вызовы журнала через код собственным методом ведения журнала. Это была дополнительная работа, но гибкость в изменении деталей реализации, оплачиваемых в конце.
Перенаправление все журналы в файл и удаляет их с консоли. В идеале я хотел бы вести журналы на консоли и быть в состоянии их каким-то образом захватить. – Tjarom
См. Мое редактирование, вы можете использовать этот подход для переопределения NSLog. Может быть добавлено определение в верхнем уровне файла заголовка – manishg