Node.jsでwinstonを使ってログをJSONで出力する

こうします。

const winston = require("winston")

const logger = winston.createLogger({
  level: "info",
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.splat(),
    winston.format.json()
  ),
  defaultMeta: { service: "my-app" },
  transports: [new winston.transports.Console()]
})

こんなログがでます

{"message":"short","level":"info","service":"my-app","timestamp":"2020-01-08T08:12:26.140Z"}

winston

winstonはデファクトっぽいロギングライブラリです。 github.com

datadogでもwinstonが紹介されています。 docs.datadoghq.com

また、子ロガーも作れます。

const childLogger = logger.child({requestId})

終わり