美文网首页
morgan nodejs日志组件两种用法

morgan nodejs日志组件两种用法

作者: 飞凡的陀螺 | 来源:发表于2018-02-06 16:25 被阅读267次

记录请求参数和请求内容

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

相关文章

  • morgan nodejs日志组件两种用法

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

  • nodejs morgan日志模块

    根据morgan的使用的md文档[https://github.com/chyingp/nodejs-learni...

  • express 默认日志组件 morgan 学习

    入门 morgan是express默认的日志中间件,也可以脱离express,作为node.js的日志组件单独使用...

  • Node.js 接口记录日志Demo

    参考地址 morgan-githubmorgan-详细介绍 morgan是express默认的日志中间件,也可以脱...

  • morgan输出日志

    使用:var logger = require('morgan'); // 定义日志和输出级别 app.use(l...

  • npm包

    Express中间件(body-parser、cookie-parser、morgan)用法与原理 0.linux...

  • YYDispatchQueuePool学习

    YYDispatchQueuePool 是 YYKit 中用来控控制全局线程数的组件; 用法有下面两种: NSQu...

  • Vue 组件通信方法 — vuex

    组件通信的原理在 Vue 两种组件通信方法 中已经讲解过了,本篇文章中主要介绍vuex的原理和用法。 1. 什么...

  • npm中常用的package

    morgan 用于记录日志的中间件,可以根据给定的参数和格式记录日志;配合文件写入功能,可以将日志按照每天一个文件...

  • ASP.NET Core 使用日志组件

    本文主要介绍在ASP.NET Core中使用两种日志组件 Logging:Flexible & free open...

网友评论

      本文标题:morgan nodejs日志组件两种用法

      本文链接:https://www.haomeiwen.com/subject/blsgzxtx.html