在Node.js日志中间件中登录到AWS CloudWatch Logs例如:morgan,pino

问题描述

morganpino是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 clouldWatchLogs putLogEvents API:

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
});

可以在日志信息中填写参数消息。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...