Как посмотреть живые журналы отладки контейнера docker - PullRequest
0 голосов
/ 12 июля 2020

Это команда для проверки логов контейнера docker (уровень информации по умолчанию) в реальном времени:

 docker logs -f CONTAINER_ID

Но что, если я хочу проверить журналы отладки в реальном времени, которые я зарегистрировал в своем коде на уровне отладки?

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

Это команда для проверки логов контейнера docker (уровень информации по умолчанию) в реальном времени:

docker logs -f CONTAINER_ID

Не совсем, docker logs CONTAINER_ID не справляется с уровнем многословности. Он просто выводит контейнер STDOUT и STDERR .

Но что, если я хочу проверить журналы отладки в реальном времени, которые я записал в свой код на уровне отладки?

Это очень хороший вопрос. Вы можете статически (через файл конфигурации) настроить приложение регистратора для записи в стандартный вывод для всех журналов (отладка и выше). Но как побочный эффект, он всегда будет регистрироваться с этим уровнем. Для простого теста это нормально, но при длительном запуске контейнера это может раздражать. В этом случае лучше использовать динамический c подход для установки уровня логгера (базовый c rest-контроллер вполне может справиться с этой задачей). Таким образом, docker logs -F CONTAINER_ID будет выводить больше или меньше журналов в соответствии с текущим уровнем.

0 голосов
/ 12 июля 2020

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

docker run -it --rm my_node_app

-it держать контейнер работающим на переднем плане, чтобы вы могли видеть журналы контейнера.

Вы сможете видеть живые журналы так же, как запущенное приложение в терминале.

Но что, если я хочу проверить живые журналы отладки, которые я зарегистрировал в своем коде на уровне отладки?

Журналы вывода контейнера полностью зависят от stdout/stderr основного процесса, который определен в CMD.

Вы можете фильтровать Debug журналы из вывод журнала , поскольку docker не знает формата журналов, он просто распечатывает журналы, которые доступны в виде stdout/stderr.

Вы можете попробовать

docker logs -f container_id | grep "Debug"

Если формат журнала содержит debug или аналогичный шаблон.

...