如何在 Docker 容器微服务中检查 python-logging 日志
How to check python-logging logs in a Docker container micro-service
我刚开始使用 Docker。
我正在处理由另一位开发人员编码的项目。在项目 Docker 容器中,我有三个微服务(aggregatore、classificatore、testmicro),每个都使用 python 模块 logging
进行调试。
我的问题是我不知道在哪里可以查看 logging
输出。
docker-compose.yml
version: '2.1'
services:
files:
image: busybox
volumes:
[..]
grafana:
[..]
prometheus:
[..]
aggregatore:
[..]
classificatore:
build: classificatore/.
volumes:
- [..]
volumes_from:
- files
ports:
- [..]
command: ["python", "/src/main.py"]
depends_on:
rabbit:
condition: service_healthy
testmicro:
[..]
rabbit:
[..]
我是终端,我是运行
$docker-compose up -d
这将启动所有微服务。
让我们专注于分类器服务。
classificatore/Dockerfile
FROM python:3
RUN mkdir /src
ADD requirements.txt /src/.
WORKDIR /src
RUN pip install -r requirements.txt
ADD . /src/.
RUN mkdir -p /tmp/reqdoc
CMD ["python", "main.py"]
classificatore/main.py
import logging
logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
logging.getLogger('pika').setLevel(logging.WARNING)
log = logging.getLogger()
[..]
app = Flask( __name__ , template_folder='./web')
@app.route("/")
def index(message=None):
log.info("classificatore index!! ")
[..]
return render_template('index.html', files1=files1, files2=files2, message=message)
在上面的代码中,输出文本“classificatore index
”去哪里了?
感谢您提供的任何支持。
docker logs classificatore
另一种方法是 docker exec -it classificatore bash
然后在你的容器里闲逛
如其他答案中所述,您可以使用 docker logs command. Or if you want to attach your current terminal’s standard input, output, and error (or any combination of the three) to a running container, look at docker attach 命令。这将让您检查您的日志 "live".
您应该将 Dockerfile 修改为 运行 python 带有无缓冲选项的脚本。
-u : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x see man page for details on internal buffering relating to '-u'
CMD ["python", "-u", "main.py"]
我刚开始使用 Docker。
我正在处理由另一位开发人员编码的项目。在项目 Docker 容器中,我有三个微服务(aggregatore、classificatore、testmicro),每个都使用 python 模块 logging
进行调试。
我的问题是我不知道在哪里可以查看 logging
输出。
docker-compose.yml
version: '2.1'
services:
files:
image: busybox
volumes:
[..]
grafana:
[..]
prometheus:
[..]
aggregatore:
[..]
classificatore:
build: classificatore/.
volumes:
- [..]
volumes_from:
- files
ports:
- [..]
command: ["python", "/src/main.py"]
depends_on:
rabbit:
condition: service_healthy
testmicro:
[..]
rabbit:
[..]
我是终端,我是运行
$docker-compose up -d
这将启动所有微服务。
让我们专注于分类器服务。
classificatore/Dockerfile
FROM python:3
RUN mkdir /src
ADD requirements.txt /src/.
WORKDIR /src
RUN pip install -r requirements.txt
ADD . /src/.
RUN mkdir -p /tmp/reqdoc
CMD ["python", "main.py"]
classificatore/main.py
import logging
logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
logging.getLogger('pika').setLevel(logging.WARNING)
log = logging.getLogger()
[..]
app = Flask( __name__ , template_folder='./web')
@app.route("/")
def index(message=None):
log.info("classificatore index!! ")
[..]
return render_template('index.html', files1=files1, files2=files2, message=message)
在上面的代码中,输出文本“classificatore index
”去哪里了?
感谢您提供的任何支持。
docker logs classificatore
另一种方法是 docker exec -it classificatore bash
然后在你的容器里闲逛
如其他答案中所述,您可以使用 docker logs command. Or if you want to attach your current terminal’s standard input, output, and error (or any combination of the three) to a running container, look at docker attach 命令。这将让您检查您的日志 "live".
您应该将 Dockerfile 修改为 运行 python 带有无缓冲选项的脚本。
-u : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x see man page for details on internal buffering relating to '-u'
CMD ["python", "-u", "main.py"]