在 NodeJS(环回)日志中启用时间戳

Enabling timestamp in NodeJS (loopback) Logs

我在 Docker 容器中有一个 nodeJS 环回应用程序 运行。

当我监控日志时,日志没有时间戳,导致明显的挑战。

有没有办法为这些日志启用时间戳?

谢谢

由于您没有共享您的 Dockerfile 或环回登录配置,我使用 loopback-cli 创建了一个简单的应用程序并对其进行了测试。一切正常。

创建 hello 工作,因为我在 express 上工作,但在 loopback 上工作,但请遵循这篇文章

http://loopback.io/getting-started/

这是我的 docker 文件

FROM goabode/nodejs

VOLUME [ "/opt/nodejs" ]
COPY . /opt/nodejs

WORKDIR /opt/nodejs
EXPOSE 3000

CMD [ "node" , "." ]

我在 server/boot/root.js 中添加 winston 进行测试

   'use strict';

module.exports = function(server) {
  var winston = require('winston');
  // Install a `/` route that returns server status
  var router = server.loopback.Router();
  router.get('/', server.loopback.status());
  router.get('/ping', function(req, res) {
    winston.log('info', 'This is a log event', {timestamp: Date.now(), pid: process.pid});
    winston.info('This is another log event', {timestamp: Date.now(), pid: process.pid});
    res.send('pong');
  });
  server.use(router);
};

关注这篇文章

https://www.loggly.com/ultimate-guide/node-logging-basics/

https://docs.strongloop.com/display/SLC/Using+logging+libraries

原来我只需要添加 -t 选项。

所以..

docker service logs -ft {NAME_OF_THE_SERVICE}

将输出带有包含在输出中的 tstamp 的日志