我正在编写一个用于使用Winston
登录Node.js的模块。我正在使用自定义格式,并像这样初始化记录器:
const logger = createLogger({
format: combine(
format.timestamp(),
format.printf(msg => `${JSON.stringify({timestamp: msg.timestamp,
shortmessage: msg.message,
level: msg.level,
source: config.programName,
file: __filename,
line: '' })}`) // how to get this?
),
transports: [new (transports.Console)({
level: config.logLevel, // logs up to specified level
})]
});
module.exports = {
error: function (message) {
logger.error(message);
},
info: function (message) {
logger.info(message);
},
debug: function (message) {
logger.debug(message);
}
};
如评论中所述,我还需要在日志中包含行号。我进行了一些研究,发现了一些解决方法(1,2,3),但由于我使用的是自定义格式,因此似乎无法在我的情况下使用它们在记录器创建期间指定,行号可以在以后检索。
我当时正在考虑使用Winston
的{{1}}功能,但似乎label
只能包含静态数据。
如何解决?任何想法。