Проблема
const logger = winston.createLogger...
Вы создаете ссылку на Winston, но она нигде не передается.Вы просто храните это в константе.Вам нужно сделать его атрибутом Logger
, а затем создать новый экземпляр Logging.Logger
и вызвать для него log()
.
Fix
У вас будетсделать его свойством атрибута Logger.
В LoggingMech.js
вы делаете this.logger = winston.createLogger
вместо const logger = winston.createLogger
, а затем создаете новый экземпляр Logging.Logger и call log () на нем.
var Logging = require('./scripts/LoggingMech.js');
// logs foo
(new Logging.Logger()).log('foo');
Но я думаю, что вы делаете это более сложным по мере необходимости.Для реализации регистратора вы можете просто изменить файл LoggingMech.js
на следующий:
const winston = require('winston');
module.exports = winston.createLogger({
level: 'info',
format: format.simple(),
transports: [
new winston.transports.Console(),
new winston.transports.File({
filename: 'TodaysLog.log'
})
]
});
и назвать его следующим образом:
var Logging = require('./scripts/LoggingMech.js');
Logging.log('foo');
Конфигурация регистратора по-прежнему заключена в LoggingMech.js
и звонить проще.Код также проще поддерживать.
Обновление 1: ведение журнала с помощью winston
Метод winston.log()
принимает только объект журнала, а не строку.
// logs "I am a log message."
winston.log({
level: 'info',
message: 'I am a log message.'
}
Для записи простых строк вы можете использовать logger.info()
.
Обновление 2: Пример полной регистрации Winston
Пример рабочего журнала.Следующий код работает на моем компьютере:
winston.js
var winston = require('winston');
module.exports = winston.createLogger({
level: 'info',
transports: [
new winston.transports.Console(),
new winston.transports.File({
filename: 'TodaysLog.log'
})
]
});
index.js
var Logging = require('./winston');
var message = {
level: 'info',
message: 'Hello distributed log files!'
};
Logging.log(message);
Logging.info('sdf');
Logging.error(message);
Logging.warn(message);
зарегистрированный контент в TodaysLog.log
{"level":"info","message":"Hello distributed log files!"}
{"message":"sdf","level":"info"}
{"level":"error","message":"Hello distributed log files!"}
{"level":"warn","message":"Hello distributed log files!"}