繁体   English   中英

如何为winston保存的日志文件添加时间戳?

[英]How to add timestamp to winston saved log file?

这是我的温斯顿配置文件:

import winston from "winston";

const alignColorsAndTime = winston.format.combine(
  winston.format.colorize({
    all: true,
  }),
  winston.format.label({
    label: "[LOGGER]",
  }),
  winston.format.timestamp({
    format: "YYYY-MM-DD HH:mm:ss",
  }),
  winston.format.printf(
    (info) => `${info.label} ${info.timestamp} ${info.level} : ${info.message}`
  )
);

export const logger = winston.createLogger({
  level: "debug",
  transports: [
    new winston.transports.Console({
      format: winston.format.combine(
        winston.format.colorize(),
        alignColorsAndTime
      ),
    }),
    new winston.transports.File({
      filename: "logs/example.log",
      format: winston.format.combine(
        winston.format.timestamp({
          format: "YYYY-MM-DD HH:mm:ss",
        })
      ),
    }),
  ],
});

它的日志是这样的: 在此处输入图像描述

问题是保存的日志文件没有时间戳:

{"level":"info","message":"asd"}

如何将时间戳添加到 winston 保存的日志文件中?

winston.format.printf(
  (info) => `${info.label} [${new Date(info.timestamp).toISOString()}] 
    ${info.level} : ${info.message}`
)

在这里你go,它会像这样产生output。 在此处输入图像描述

我用 format.json() 解决了这个问题,如下所示:

export const logger = winston.createLogger({
  level: "debug",
  transports: [
    new winston.transports.Console({
      format: winston.format.combine(
        winston.format.colorize(),
        alignColorsAndTime
      ),
    }),
    new winston.transports.File({
      filename: "logs/example.log",
      format: winston.format.combine(
        winston.format.timestamp({
          format: "YYYY-MM-DD HH:mm:ss",
        }),
        winston.format.json()
      ),
    }),
  ],
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM