2

morgan , pino是 node.js 日志中间件。我想将日志导出到 AWS cloudWatchLogs。

例如

morgan对于express

var express = require('express');
var loggerM= require('morgan');
var app = express();
app.use(logger('dev'));

使用此设置,您可以在终端上看到日志。但是只能在终端显示,不知道怎么获取日志字符串,只好拿到日志字符串传到云端。

我目前只找到stream方法,只能直接保存到本地文件:

const appLogStream = fs.createWriteStream(path.join(__dirname, 'app.log'), { flags: 'a' })
app.use(morgan('combined', { stream: appLogStream}));

AWS cloudWatchLogs putLogEventsapi:

var params = {
  logEvents: [ /* required */
    {
      message: 'STRING_VALUE', /* required */
      timestamp: 'NUMBER_VALUE' /* required */
    },
    /* more items */
  ],
  logGroupName: 'STRING_VALUE', /* required */
  logStreamName: 'STRING_VALUE', /* required */
  sequenceToken: 'STRING_VALUE'
};
cloudwatchlogs.putLogEvents(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

参数message可以填写日志信息。

4

0 回答 0