摩根直接将请求输出到控制台。
如何将它们重定向到npm 调试,以便它遵循与正在记录的其他内容相同的格式?
我的debug.js配置如下所示:
import debug from 'debug';
const LOG_PREFIX = 'api';
const info = debug(`${LOG_PREFIX}:info`);
const dev = debug(`${LOG_PREFIX}:dev`);
const error = debug(`${LOG_PREFIX}:error`);
export {
info,
dev,
error,
};我现在还记录了其他的东西,比如:
import { info } from './debug';
info('App is up and running!');我现在的摩根电话是:
app.use(morgan('combined'));发布于 2017-02-02 18:27:45
Morgan接受一个可选参数,即流。
默认情况下,它指向控制台process.stdout。
因为它可以调用stream.write,所以您可以轻松地构建重定向到您的debug的快速流。
app.use(morgan('combined', { stream: { write: msg => info(msg) } }));一般说来(但仍然是ES6),这将是:
import debug from 'debug';
const info = debug('info');
app.use(morgan('combined', { stream: { write: msg => info(msg) } }));ES5
var info = require('debug')('info');
app.use(morgan('combined', { stream: { write: function(msg) { info(msg); } }}));发布于 2019-07-10 15:07:12
当使用摩根ˋ流ˋ与ˋ调试ˋ相结合时,最好这样做:
app.use(morgan('combined', { stream: { write: msg => info(msg.trimEnd()) } }));原因是:在调用stream.write(...)函数时,morgan在msg的末尾添加了一个新行。
https://stackoverflow.com/questions/42009672
复制相似问题