У меня есть консольное приложение на Mac, которое выводит код ошибки через NSLog. Как я могу зафиксировать результаты NSLog при запуске консольного приложения в ruby?
Я пробовал такие подходы, как перенаправление stderr, но это не Кажется, это не так.
Хорошо, я отредактирую это, чтобы быть кристально чистым.
У меня есть программа, написанная для MacOS, которая в настоящее время сообщает о своих выводах через NSLog. Во всех смыслах и целях он может просто иметь эту строку в своем main.m
файле:
NSLog(@"Hello world!");
Я хочу захватить содержимое этого NSLog. Я не могу изменить саму программу, у меня есть только лог-файлы. Я хочу сделать это в Ruby для тестирования на основе rspec.
Прямо сейчас я не могу использовать редиректы. Любой вид переадресации, например:
@output = `#{theProgramToTest}`
puts @output
приводит к отсутствию вывода. Если я сделаю перенаправление stderr, как описано в предыдущем вопросе, на который я ссылался, у меня все равно не будет результата. Итак, как я могу зафиксировать результаты программы? Я не хочу перенаправлять их в файл.
/private/var/log/system.log
или одного из других журналов, но это косвенный путь, когда вы можете перенаправить вывод. - person the Tin Man   schedule 08.07.2013$stdio
или$stderr
для записи в строку, а затем перемотать ее назад и получить доступ к ее содержимому. Вот как мы фиксируем вывод в подпроцессе Ruby, который обычно пытается записать в консоль. Но если это не приложение для IOS, а только командная строка, почему бы не использовать обычный Системный журнал или Логеры классы? - person the Tin Man   schedule 08.07.2013