Я использую winston для создания самописца, который позволяет мне добавлять метки времени и номер строки в ведение журнала. Каждый из кодов может выполнять свои функции, но в сочетании они работают не так, как ожидалось.
// **help to add timestamp**
var logger = new (winston.Logger)({
transports : [new (winston.transports.Console)({
json : false,
timestamp : true,
colorize: true
}), new winston.transports.File({
filename : __dirname + '/debug.log',
json : true
})]
,exitOnError : false
});
// **help me to add line number**
var logger_info_old = winston.info;
logger.info = function(msg) {
var fileAndLine = traceCaller(1);
return logger_info_old.call(this, fileAndLine + ":" + msg);
}
Однако при добавлении конфигурации номера строки отметка времени для регистрации исчезнет.
Например, перед добавлением конфигурации номера строки.
logger.info("abc");
2013-11-24T09:49:15.914Z - info:339:abc
при добавлении конфигурации номера строки
logger.info("abc");
info: (H:\Dropbox\node\fablab\utils\logging.js:85:abc
Оптимальный результат, который я хочу, похож на
logger.info("abc");
2013-11-24T09:49:15.914Z - info: (H:\Dropbox\node\fablab\app.js:339:abc
Могу ли я исправить это?