我试图使用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将未捕获的异常错误存储在单独的文件中
答案 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' })
]
});