Журналы докера не читаются - PullRequest
1 голос
/ 25 сентября 2019

Когда я сбрасываю журнал докера контейнера, используя следующую команду

Докер регистрирует имя контейнера> containername.log

Вывод, сгенерированный для файла, не читаетсячитать и понимать - не указана дата для журнала - добавлены неизвестные escape-символы

Я не уверен, нужно ли мне выгружать журналы с какой-то дополнительной опцией, добавленной в приведенную выше команду, или в этом есть больший пробелМое понимание.

Пример вывода:

Среда размещения: корневой путь к производственному контенту: / app Сейчас прослушивается: http://[::]:80 Приложение запущено.Нажмите Ctrl + C, чтобы выключить.[39; 49м [30м [[39; 49м [39; 49м] [37м11: 21: 25.208 +00: 00 [39; 49м [39; 49м [30м [39; 49м [39; 49м [37mINF [39; 49м] [39; 49 м [30 м] [39; 49 м [39; 49 м [36 м] Начало запроса HTTP / 1.1 GET http://localhost:31201/swagger [39; 49 м

[39; 49 м [30 м [[39; 49 м [39]; 49m [37m11: 21: 25,943 +00: 00 [39; 49m [39; 49m [30m [39; 49m [39; 49m [37m] 39; 49m [37m [41mERR [39; 49m [39; 49m [30m]] [39; 49 м [39; 49 м [37mLevel = ErrorMessage = Выполнение запроса не выполнено из-за следующих деталей: URL = http://localhost:31201/swagger

Я могу ясно увидеть выходные данные с помощью команды docker logs.Я не уверен, почему эти специальные символы добавляются в вывод.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Этот вывод получен из приложения, которое ожидает записи в tty.Это может быть конфигурация приложения, которую вы можете изменить.И он также может обнаруживать, когда их ввод является tty, который вы можете переключать с помощью docker (флаг -t или tty в файле compose, который по умолчанию выключен).

Если вы не можете изменить контейнерили приложение, чтобы избежать печати управляющих символов, затем вы можете попытаться удалить их с помощью команды sed:

docker logs containername | sed $'s/[^[:print:]\t]//g' > containername.log
0 голосов
/ 25 сентября 2019

Не интуитивно docker logs просто выводит стандартный вывод точки входа / команды контейнера.

В результате вы получаете специальные символы ANSI для установки стиля текста (цвет шрифта и передний план) в интерпретаторе оболочки.Обычно это не удобно для файлов журналов или для отображения в виде простого текста.

Некоторые приложения имеют возможность вывода в виде простого текста (без специальных символов) (например: docker-compose logs --no-colors).

...