Как указать разные файлы журнала для каждой записи журнала
У меня есть следующий скрипт, который работает как модуль регистрации для других скриптов в моем приложении:
logger.js
winston = require('winston');
var fileLog = new (winston.Logger)({
transports:[
new (winston.transports.File)({filename: filename.log})
]
});
module.exports.fileLog = fileLog;
Я использую этот модуль регистрации в сценариях следующим образом:
script.js
var logger = require('./logger');
logger.fileLog.log('info','Chill winston');
Прямо сейчас все записи журнала сохраняются в filename.log, но я хотел бы иметь возможность указывать другой файл журнала каждый раз, когда я записываю запись из script.js
Является ли это возможным? Заранее спасибо.
1 ответ
Решение
Мне удалось решить эту проблему с помощью пользовательской функции в моем модуле регистрации.
logger.js
winston = require('winston');
function fileLogF(filename,level,msg) {
if(typeof fileLog == 'undefined' || (fileLog.transports.file.filename)!= filename){
fileLog = new (winston.Logger)({
transports:[
new (winston.transports.File)({filename: filename,json:false }),
],
})
}
fileLog.log(level,msg);
}
Теперь я могу указать файл журнала при создании записи журнала:
script.js
var logger = require('./logger');
logger.fileLog('filename.log','info','Chill winston');