所以我使用winston-daily-rotate-file。 在 app.js 中我有:
var logger = require('./logger');
然后:
logger.info("logging to info");
logger.error("logging to error");
在 logger/index.js 中我有:
var error_transport = new winston.transports.DailyRotateFile({
filename: '../logs/error',
datePattern: 'yyyy-MM-dd.',
prepend: true,
level: 'error',
name: 'error'
});
var info_transport = new winston.transports.DailyRotateFile({
filename: '../logs/info',
datePattern: 'yyyy-MM-dd.',
prepend: true,
level: 'info',
name: 'info'
});
var logger = new (winston.Logger)({
transports: [
error_transport,
info_transport
]
});
module.exports = logger;
发生的事情是文件
logs/DATE_error
包含:
logging to error
但是:文件
logs/DATE_info
包含:
logging to info
logging to error
为什么信息文件还包含错误日志?
最佳答案
您可以在此处了解 Winston 的日志记录级别:Logging Levels
信息包含错误日志的基本原因是,具有较高优先级编号的“级别”将始终记录优先级“低于”它们的任何级别的消息。请参阅 Using Logging Levels 下的示例
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ level: 'warn' }),
new (winston.transports.File)({ filename: 'somefile.log', level: 'error' })
]
});
logger.debug("Will not be logged in either transport!");
logger.transports.console.level = 'debug';
logger.transports.file.level = 'verbose';
logger.verbose("Will be logged in both transports!");
关于javascript - Winston 轮流写入多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397110/