如何使用nodejs中的Morgan和Winston.js格式获取Originurl



我正在尝试在nodejs项目(代码)中使用winston.js和Morgan从消息属性获取原始图:

winstone.je

const { createLogger, format, transports } = require('winston');
const { combine, timestamp, label, printf } = format;
const myFormat = printf(({ level, message, label, timestamp }) => {
  return `${timestamp}  ${level}: ${message}`;
});
const logger = createLogger({
  format: combine(
    label({ label: 'right meow!' }),
    timestamp(),
    myFormat
  ),
  transports: [new transports.Console()]
});

app.js

app.use(morgan('combined', { stream: winston.stream }));

IS的输出:

2019-03-12T13:35:50.112Z : ::1 - - [12/Mar/2019:13:35:50 +0000] "GET /api/bar/origin/000a  HTTP/1.1"

我正在寻找的是仅获取此部分:" get/api/bar/000a http/1.1",而无需使用substring或在消息属性上切片,是否有一种方式来自myformat const get OrigineUrl请?

好吧,基于摩根文档,您可以使用预定格式( combinedtiny,...)更改输出格式,或者自己制作自己应该看起来像app.use(morgan(':method :url HTTP/:http-version', { stream: winston.stream }));

最新更新