тип файла и соответствующая программа, которая будет учитывать управляющие символы

Я использую Node.js для записи в файлы журнала, используя модуль colors, который, как мне кажется, вставляет управляющие символы в строки для раскрашивания/форматирования текста, которые будут отображаться в терминальном приложении.

Когда я пишу в терминал напрямую, он показывает цвета, но когда я пишу в файл .log, а затем завершаю файл журнала Terminal.app или iterm2, он не показывает цвета/форматирование текста. Кто-нибудь знает, почему это так? Я предполагаю, что когда вы пишете в файл журнала, управляющие символы не сохраняются? Таким образом, при хвостовании они вообще не будут отображаться?

Возможно, если я запишу в файл .txt или какой-либо другой тип файла, управляющие символы останутся?

Как это работает? В какой-то момент управляющие символы удаляются или игнорируются, и я не уверен, как и когда.


person Alexander Mills    schedule 09.06.2016    source источник


Ответы (1)


См. этот код .

Он проверяет, идет ли вывод на терминал (путем проверки process.stdout.isTTY) или куда-то еще , как файл . В последнем случае цветовые коды не выводятся.

person robertklep    schedule 09.06.2016
comment
спасибо, имеет смысл, вы случайно не знаете, может ли команда tail обрабатывать управляющие символы? Или всегда будет показывать простой текст, задаваясь вопросом, какие программы интерпретируют управляющие символы, а какие нет... - person Alexander Mills; 10.06.2016
comment
Я просматривал здесь unix.stackexchange.com/questions/196118/ - person Alexander Mills; 10.06.2016
comment
вы абсолютно правы, я изменил это логическое значение, и оно помещает управляющие символы в файл .log, если я просматриваю файл журнала с помощью нетерминального приложения, мы можем видеть управляющие символы, но при просмотре с помощью терминального приложения и использование tail -f интерпретирует символы, и мы их не видим, кажется немного сумасшедшим - что, если управляющие символы действительно означают что-то за цветовым кодированием? - person Alexander Mills; 10.06.2016
comment
@AlexMills, как правило, вы все равно не записываете управляющие символы как есть, именно из-за того, что вы предлагаете. Вот почему colors не выводит их, когда его вывод записывается в файл. Ссылка, которую вы публикуете, предлагает некоторые хорошие обходные пути, если управляющие символы do попадают в ваши файлы журналов (tail -f ... | cat -v - это простой способ). - person robertklep; 10.06.2016