Любой способ печати по цвету с помощью NSLog?
В типичном цветовом терминале есть escape-последовательности, которые можно использовать для печати текста в разных цветах. Как правило, доступно 8 цветов. Я попытался использовать стандартные, ANSI escape-последовательности для этого в NSLog, но без кубиков. Он не поддерживает этот механизм.
Есть ли другой способ печати на консоль (журнал) в цвете с помощью NSLog?
Спасибо.
Ответы
Ответ 1
Вы можете использовать Apple Color Emoji, чтобы добавить цвет к ваш логический выход выглядит следующим образом:
if ([self isKindOfClass:[UITableViewController class]])
NSLog(@"💙 Table View controller Will appear: %@", NSStringFromClass([self class]));
else if ([self isKindOfClass:[UINavigationController class]])
NSLog(@"💜 Navigation controller Will appear: %@", NSStringFromClass([self class]));
else
NSLog(@"💛 View controller Will appear: %@", NSStringFromClass([self class]));
Поскольку приведенный выше код может отображаться некорректно на не-OS-X-платформах, я прикрепил скриншот XCode, показывая вывод кода и журнала:
![Screenshot from X Code with Apple Color Emoji in code and log output]()
Ответ 2
Линия, подобная этой, работает для меня:
NSLog(@"\e[1;31mRed text here\e[m normal text here");
(Доступно больше цветов здесь)
Обратите внимание, что вы должны смотреть свой вывод на обычной консоли, поскольку консоль отладки Xcode, похоже, не поддерживает раскраску.
Ответ 3
Ayoy-подход, похоже, работает вообще в приложении с командной строкой с printf
:
Однако я не думаю, что это работает со встроенной консолью Xcode:
Это:
NSLog(@"\e[1;31mRed text here\e[m normal text here");
... приводит к следующему:
Ответ 4
Вы можете раскрасить ваш вывод NSLog
с помощью этого плагина Xcode: https://github.com/DeepIT/XcodeColors
Я написал несколько строк с моими быстрыми инструкциями по установке и простыми настраиваемыми макросами.
Обновление: теперь я использую NSLogger с поддержкой цвета. Очень мощный.