如何解决对于部署在ECS容器中的node.js应用程序没有可见的日志消息
我已经开发了一个node.js应用程序,它在本地日志中的正常工作在终端上可以正常显示,如图所示:
当我们将应用程序作为docker容器部署到Amazon ECS时,cloudwatch中没有日志消息。
我尝试使用bunyan以及winston日志记录模块进行日志记录,但是都没有结果。
logger.js文件的内容为:
const bunyan = require('bunyan');
const logger = bunyan.createLogger({
name: 'appname-api',outputCapture: 'std'
});
module.exports = logger;
根目录下索引文件的内容如下:
const config = require('./config/config');
const logger = require('./app/utils/logger');
const dbOperations = require('./config/data-source');
console.log('Before anonymous function');
process.on('uncaughtException',function (err) {
console.log('Uncaught exception thrown',err);
process.exit(1);
});
// (async () => {
try {
console.log('Inside anonymous function try block');
logger.info('Connecting to database');
// await
dbOperations.initializeDatabase()
.then(() => {
logger.info('DB connection successful');
})
.catch(err => {
logger.error(err);
});
logger.info('Connected to database');
// Init the express application
const app = require('./config/express')(config);
// Start the app by listening on <port>
const server = app.listen(config.port);
server.keepAliveTimeout = 61000;
server.headersTimeout = 65000;
// Expose app
exports = module.exports = app;
// Logging initialization
logger.info(`API Server started on port ${config.port}`);
} catch (err) {
console.log('Some error occoured',err);
logger.error('Error starting server ',err);
}
// })();
console.log('After anonymous function');
下面附有cloudwatch日志屏幕截图(其中没有显示一条日志消息)
我们的开发人员尝试将另一个项目部署到相同的ECS中,在这种情况下,日志按预期发送。
Docker文件内容:
FROM node:12
WORKDIR /folder-api
RUN apt-get update
RUN apt-get install -y jq python-pip libpython-dev
RUN pip install --upgrade awscli
ADD package.json .
RUN npm install
ADD . /folder-api
RUN ["chmod","+x","/folder-api/entrypoint.sh"]
我看不到这里出了什么问题,请让我看看是否忽略了某些内容。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。