一起使用 express-pino-logger 和 pino-pretty

fis*_*ell 4 node.js express

我有使用express-pino-logger 的现有代码。这对我们的 ELK 堆栈设置来说很好,但在本地运行时非常不幸(记录缩小的 JSON)。

我想使用pino-pretty使本地使用不痛苦。

pino-pretty-express中有一个替代方案可以解决这个问题,但使用它自己的漂亮格式化程序。如果可以的话,我想使用 pinojs 的标准包。

这是我到目前为止所拥有的:

// with just pino-pretty installed, pino works out of the box
const pino = require('pino')
const logger = pino({
  prettyPrint: true
})

logger.info('hi') // prints pretty
Run Code Online (Sandbox Code Playgroud)

和:

// adding this option to express-pino-logger, doesn't work
const pino = require('express-pino-logger')
const logger = pino({
  prettyPrint: true
})

logger.info('hi') // does NOT print pretty
Run Code Online (Sandbox Code Playgroud)

fis*_*ell 5

我想我已经解决了我自己的问题。

关键在于express-pino-logger页面上的最后一个示例:

'use strict'

const pino = require('pino')()
const expressPino = require('express-pino-logger')({
  logger: pino
})
Run Code Online (Sandbox Code Playgroud)

这是我的解决方案:

// use pino-pretty and express-pino-logger together
const basicPino = require('pino')
const basicPinoLogger = basicPino({ prettyPrint: true })
const expressPino = require('express-pino-logger')({
  logger: basicPinoLogger
})

const logger = expressPino.logger

logger.info('hi') // prints pretty
Run Code Online (Sandbox Code Playgroud)