morgan nodejs日志组件两种用法

记录请求参数和请求内容

默认morgan没有提供记录请求参数和请求内容的方法, 但是他提供了扩展方法,如下:

morgan.token('requestParameters', function(req, res){
  return JSON.stringify(req.query) || '-';
});

morgan.token('requestBody', function(req, res){
  return JSON.stringify(req.body) || '-';
});

// create custom format,includes the custom token
morgan.format('live-api', ':method :url :status :requestParameters :requestBody');

app.use(morgan('live-api'));

输出日志到数据库或将日志作为参数发送到其他请求

默认日志信息是输出到命令行窗口中,能否输出到文件或数据库中呢?答案是肯定的 定义morgan的options中有个stream配置项,我们可以利用他做文章。

const request = require('request')
const split = require('split')

// 将日志信息作为请求参数传给其他地址,比如 Elasticsearch 日志分析系统
let httpLogStream = split().on('data', function (line) {
  request({
    url: 'localhost://192.168.1.1:8080',
    method: 'POST',
    body: line
  })
  .on('response', function(response) {
    console.log(response.statusCode) // 200
  })
});

app.use(morgan('common', {
  stream: httpLogStream
}));


// 将日志写入数据库
// 带write方法的对象
let dbStream = {
  write: function(line){
    saveToDatabase(line);  // 伪代码,保存到数据库
  }
};

// 将 dbStream 作为 stream 配置项的值
app.use(morgan('short', {stream: dbStream}));

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逻辑熊猫带你玩Python

“聊一聊Linux的工作环境”

由于Linux采用了和Windows不同的文件系统,所以和Windows用户熟悉的文件管理模式不通,这里来简单说说Linux的根("/")目录下目录的用途

9220
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装OpenLiteSpeed Web服务器

OpenLiteSpeed是一种优化的开源Web服务器,可用于管理和提供站点。就Linux Web服务器而言,OpenLiteSpeed具有一些有趣的功能,使其...

12600
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统--任务调度系统解析

任务调度系统是什么:他是一个类似Sql Server的代理,他可以帮助你定时处理一些SQL事务

14030
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统--任务调度系统解析

任务调度系统是什么:他是一个类似Sql Server的代理,他可以帮助你定时处理一些SQL事务

22820
来自专栏程序员同行者

vue环境安装

13120
来自专栏运维前线

使用Gitlab创建git项目

使用Gitlab创建git项目 登录gitlab系统,访问自己的gitlab.example.com,然后使用gitlab用户,登录 ? 第一次登录需要重新修改...

1.4K80
来自专栏醉梦轩

flyme中关闭系统的权限管理

14530
来自专栏ml

java配置使用手册

进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1、下载jdk(http://java.sun.com/javase/download...

397120
来自专栏Java架构师历程

Linux设置静态IP

33230
来自专栏云计算教程系列

如何在CentOS 7上安装OpenLiteSpeed Web服务器

OpenLiteSpeed是一种优化的开源Web服务器,可用于管理和提供站点。就Linux Web服务器而言,OpenLiteSpeed具有一些有趣的功能,使其...

24100

扫码关注云+社区

领取腾讯云代金券