Node.js 如何使用winston日志文件将信息消息和错误消息存储在单独的文件中?

Node.js 如何使用winston日志文件将信息消息和错误消息存储在单独的文件中?,node.js,winston,Node.js,Winston,我试图使用winston.If.info.log在日志文件中记录信息和错误。如果发生未捕获的异常错误,则只存储error.log文件。但如果发生常见错误,则同时存储info.log和error.log两个文件。如何修复任何一个文件,请给出一些解决方案 winston.js const winston = require('winston'); require('winston-mongodb'); require('express-async-errors'); const winstonLo

我试图使用winston.If.info.log在日志文件中记录信息和错误。如果发生未捕获的异常错误,则只存储error.log文件。但如果发生常见错误,则同时存储info.log和error.log两个文件。如何修复任何一个文件,请给出一些解决方案

winston.js

const winston = require('winston');
require('winston-mongodb');
require('express-async-errors');

const winstonLogger = function () {

    winston.add(new winston.transports.Console({
        format: winston.format.combine(
        winston.format.simple(),
        winston.format.timestamp(),
        winston.format.prettyPrint(),
        winston.format.colorize()
            ),
            handleExceptions: true
        }));
    // Info Log messages to file
    winston.add(new winston.transports.File({
        filename: 'logs/info.log',
        level: 'info'
    }));
    // Error Log Messages file
    winston.add(new winston.transports.File({
        filename: 'logs/error.log',
        level: 'error',
        handleExceptions: true,
    }));
};

module.exports = winstonLogger;


我希望信息消息存储在info.log文件中,错误消息存储在error.log文件中。未捕获异常错误使用winston存储在单独的文件中winston日志记录基于您指定的级别。低于该级别的所有日志都将转到指定的文件

日志记录级别0到5(最高到最低):

下面是winston文档中的示例代码:

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  defaultMeta: { service: 'user-service' },
  transports: [
    //
    // - Write to all logs with level `info` and below to `combined.log` 
    // - Write all logs error (and below) to `error.log`.
    //
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

我尝试了,但错误消息存储在两个文件中,我只想存储错误。LogYea由于错误是最高级别,它将所有级别记录到error.log。可以尝试使用自定义级别并记录最低自定义级别的错误。const MyCustomLevel={级别:{foo:0,bar:1,baz:2,foobar:3};const customlevelogger=winston.createLogger({levels:myCustomLevels.levels});
const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  defaultMeta: { service: 'user-service' },
  transports: [
    //
    // - Write to all logs with level `info` and below to `combined.log` 
    // - Write all logs error (and below) to `error.log`.
    //
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});