Winston 日志在 Docker 容器中不起作用

Winston logs does not work in the Docker Container

我正在使用打字稿创建一个 nodejs/express 应用程序。我已经安装了 winston 包。使用 npm install winston。 我正在关注这个 article。我想docker处理这个。

到目前为止我做了什么:

  1. 我已经在 logger.ts 中导入了 winston 包。
  2. 将 logger.js 文件导入到 server.ts 文件。

Winston 记录器在我 运行 npm run dev 命令时工作。我在控制台中看到了 winston 日志。 当我在 docker 容器中实现相同时。

我使用 docker build -t docker-image . 命令然后 docker-compose up

我的 Dockerfile:

FROM node:10
WORKDIR /app
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . /app

EXPOSE 5000
CMD [ "node", "dist/server.js" ]

docker-compose.yml 文件:

version: '3'
services:
  app:
    container_name: hoptik-pims-node
    restart: always
    build: .
    ports:
      - '5000:5000'
    links:
      - mongo
  mongo:
    container_name: mongo
    image: mongo
    ports:
      - '2717:27017'

我尝试访问页面 http://localhost:5000/logger。我得到无法获取/记录器。 我不明白我做错了什么。最近几天我一直在尝试解决这个问题。谁能帮我解决这个问题。

提前致谢。

看来你做错了,为了查看日志你不应该去 localhost:5000/logger,相反你应该使用以下命令查看 docker 日志

docker logs <your-container-id> -f

例子看起来像

docker logs 2921e28c845f -f 

docker logs 2921e28c845f5ba9c97c371b81e1d68db28650e576ea18b78592713362baa140 -f

这应该会显示正确的日志。