温斯顿 - 未添加时间戳

Lud*_*c S 1 logging node.js winston

我使用 Winston 作为 NodeJS 项目的记录器。我曾尝试向日志消息添加时间戳并配置 Winston 以非 Json 方式编写控制台日志消息,但未成功。我的配置如下

const appRoot = require('app-root-path');
const winston = require('winston');

const options = {
    file: {
        level: 'info',
        filename: `${appRoot}/logs/app.log`,
        timestamp: true,
        handleExceptions: true,
        json: true,
        maxsize: 5242880, // 5MB
        maxFiles: 15,
        colorize: false,
    },
    console: {
        level: 'debug',
        timestamp: true,
        handleExceptions: true,
        json: false,
        colorize: true,
    },
};

const logger = winston.createLogger({
    transports: [
        new winston.transports.File(options.file),
        new winston.transports.Console(options.console)
    ],
    exitOnError: false,
});

module.exports = logger;
Run Code Online (Sandbox Code Playgroud)

这就是我在其他文件中导入 Winston 的方式(winston 配置文件位于我项目的根目录):

const winston = require('../winston');
Run Code Online (Sandbox Code Playgroud)

知道它为什么起作用吗?

Bab*_*boo 5

我在 winston 3 上遇到过这个错误。查看本节中指定记录器格式的文档。这将解决问题。