首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winson的时间戳未添加时间戳

Winson的时间戳未添加时间戳
EN

Stack Overflow用户
提问于 2020-10-18 22:08:34
回答 1查看 369关注 0票数 0

我为我的节点应用程序创建了一个简单的Winston记录器,但是带有时间戳的配置不起作用,这意味着什么?这意味着并不是所有的日志都带有时间戳。

示例:

代码语言:javascript
复制
const { createLogger, format, transports } = require('winston');
const logger = createLogger({
    transports: [
        new transports.File({
            maxsize: 5120000,
            maxFiles: 20,
            filename: `logs/logs.log`,
            colorize: true,
            json: true,
            timestamp: true
        }),
        new transports.Console({
            level: "debug",
            timestamp: true,
            format: format.combine(
                format.colorize(), 
                format.simple(),
                format.timestamp()
            )
        })
    ]
});


module.exports = { logger };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-18 22:18:58

simple()格式不输出时间戳。因此您应该使用printf定义自定义格式

代码语言:javascript
复制
const { createLogger, format, transports } = require('winston');

const myFormat = format.printf(({ level, message, label, timestamp }) => {
  return `${timestamp} [${label}] ${level}: ${message}`;
});

const logger = createLogger({
    transports: [
        new transports.File({
            maxsize: 5120000,
            maxFiles: 20,
            filename: `logs/logs.log`,
            timestamp: true,
            json: true,
        }),
        new transports.Console({
            level: "debug",
            timestamp: true,
            format: format.combine(
                format.timestamp(),
                format.colorize(), 
                myFormat,
            )
        })
    ]
});


module.exports = { logger };

我还将timestamp()格式移到了myFormat之前,因为它应该在消息到达printf之前填充消息的时间戳。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64414259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档