如何使用Winston日志文件通知消息和错误消息分别存储的文件?

时间:2019-07-16 04:09:24

标签: node.js winston

我试图使用winston在日志文件中记录信息和错误。如果有任何信息存储了info.log。如果发生未捕获的异常错误,则仅存储error.log文件。但是,如果发生commom错误,则同时存储这两个文件(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将未捕获的异常错误存储在单独的文件中

1 个答案:

答案 0 :(得分:0)

Winston日志记录基于您指定的级别。该级别以下的所有日志都将进入指定的文件。

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

0: error
1: warn
2: info
3: verbose
4: debug
5: silly

下面是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' })
  ]
});