LINUX.ORG.RU
ФорумAdmin

Отключить ANSI при выводе логов Докера

 ,


0

1

По ходу работы Дженкинс запускает docker logs. В логе в вывод программы в произвольных местах добавляется куча мусора наподобие

←[2J←[?25l←[m←[H

(символ 0x1b заменил стрелкой, чтобы движок ЛОРа не ругался)
Гугл находит множество жалоб на подобное несколько лет назад и ключи командной строки, отключающие ANSI-форматирование. Но в современных версиях они не работают. Даже исходников, куда добавляли возможность отключать эскейп-пследовательности по ссылкам из багов нет.

Нашёл упоминания, что вывод идёт через библиотеку Logrus, которая автоматически определяет, когда следует красиво форматировать, когда нет. Но в моём случае (извращения с Вайном) что-то не срабатывает.

Как принудительно отключить добавления эскейп-последовательностей?

P.S. Проверил /var/log/containers/. По умолчанию лог хранится в виде файла JSON, в котором нет никакого форматирования Esc-последовательностями. Они добавляются только при выводе через docker logs.

P.P.S. После обновления Дженкинса и плагинов мусор в логи добавлять перестало. Надеюсь, надолго.



Последнее исправление: olegd (всего исправлений: 5)

А это точно не сам дженкинс добавляет? Там, помнится, была опция «Colorize build output» она как раз их и добавляла.

cocucka 😊😊
()

Скорее всего это у тебя приложение рисует цвета либо использует другие escape-последовательности, а не сам дженкинс.

Что у тебя в докере такое запускается-то хоть?

AnDoR
()
Ответ на: комментарий от AnDoR

А может взять и рисовать цвета? https://plugins.jenkins.io/ansicolor/

Не работает :)

И вообще, нужно потом этот лог скармливать Эластику. Удалять эскейп-последовательности из середины ключевых слов можно. Но проще не допускать их появления.

Что у тебя в докере такое запускается-то хоть?

Закрытая проприертарная программа под Вайном. Доступ к исходникам есть.

Скорее всего это у тебя приложение рисует цвета либо использует другие escape-последовательности, а не сам дженкинс.

Вчера весь день с мэйнтэйнером изучали исходники и доки к рантаймам. Программа ничего раскрашивать и форматиртовать не умеет. А вот Докер такие фокусы допускал несколько лет назад.

olegd
() автор топика
Ответ на: комментарий от cocucka

А это точно не сам дженкинс добавляет? Там, помнится, была опция «Colorize build output» она как раз их и добавляла.

Опция отключена.

Строго говоря, это – не раскрашивание, а только форматирование, и оно наблюдается и в консоли по docker logs, если вручную повторить действия Дженкинса.

olegd
() автор топика

Самого недавно интересовал вопрос как отключить или игнорировать вывод подобных последовательностей (желательно на уровне настроек терминала, чтоб для всех программ сразу).

Пока что нашёл такое (https://unix.stackexchange.com/questions/14684/removing-control-chars-including-console-codes-colours-from-script-output/527259#527259):

... | ansi2txt
spirit
()
Ответ на: комментарий от spirit

Спасибо. В Убунту есть, в Centos не нашёл. Пока необходимость пропала, заморачиваться не буду.

olegd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.