有没有办法使用 Morgan-body 在 express.js 中创建自定义日志格式?
Is there a way to create a custom log format in express.js using Morgan-body?
我正在使用 morgan-body 在我的节点中记录 HTTP 请求和响应。js/express 应用程序。此中间件创建的日志条目包含完整的请求和响应 HTTP headers,这对我的需要来说太冗长了。
这是我的 morgan-body 片段:
const express = require('express');
const app = express();
const parser = require('body-parser');
const morganBody = require('morgan-body');
// snipped configuration for other middleware
app.use(parser.json());
app.use(parser.urlencoded({ extended: false }));
morganBody(app, {
noColors: true,
maxBodyLength: 65535,
stream: this.responseStream
});
由于现有的日志条目过于冗长,我需要为它们创建自定义格式,即
timestamp: fruit-name: info: status: Pass message: no damage
字段 "status" 和 "message" 在 response.body.
我已经在谷歌上搜索了解决方案,但我被卡住了。 morgan-body 有没有办法编写自定义消息?如果有替代的中间件可以实现我所需要的,那将是受欢迎的。
而不是使用 morgan-body, this can be easily achieved using morgan 库。
您可以通过创建自定义标记来实现。
这是一个可能的解决方案:
const express = require('express');
const app = express();
const morgan = require('morgan');
morgan.token('status', function (req, res) { return res.body.status })
morgan.token('message', function (req, res) { return res.body.message })
morgan.token('fruit-name', function (req, res) { return res.body.fruit-name })
morgan.token('timestamp', function (req, res) { return res.body.timestamp })
app.use(morgan('Timestamp\: :timestamp fruit-name\: :fruit-name Status\: :status Message\: :message'))
这应该为您的日志创建一个自定义字符串!
我正在使用 morgan-body 在我的节点中记录 HTTP 请求和响应。js/express 应用程序。此中间件创建的日志条目包含完整的请求和响应 HTTP headers,这对我的需要来说太冗长了。
这是我的 morgan-body 片段:
const express = require('express');
const app = express();
const parser = require('body-parser');
const morganBody = require('morgan-body');
// snipped configuration for other middleware
app.use(parser.json());
app.use(parser.urlencoded({ extended: false }));
morganBody(app, {
noColors: true,
maxBodyLength: 65535,
stream: this.responseStream
});
由于现有的日志条目过于冗长,我需要为它们创建自定义格式,即
timestamp: fruit-name: info: status: Pass message: no damage
字段 "status" 和 "message" 在 response.body.
我已经在谷歌上搜索了解决方案,但我被卡住了。 morgan-body 有没有办法编写自定义消息?如果有替代的中间件可以实现我所需要的,那将是受欢迎的。
而不是使用 morgan-body, this can be easily achieved using morgan 库。
您可以通过创建自定义标记来实现。
这是一个可能的解决方案:
const express = require('express');
const app = express();
const morgan = require('morgan');
morgan.token('status', function (req, res) { return res.body.status })
morgan.token('message', function (req, res) { return res.body.message })
morgan.token('fruit-name', function (req, res) { return res.body.fruit-name })
morgan.token('timestamp', function (req, res) { return res.body.timestamp })
app.use(morgan('Timestamp\: :timestamp fruit-name\: :fruit-name Status\: :status Message\: :message'))
这应该为您的日志创建一个自定义字符串!