Я пишу модуль для входа в Nodejs, используя Winston
. Я использую пользовательский формат и инициализирую свой регистратор следующим образом:
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
label
, но, похоже, label
s можетсодержат только статические данные.
Как это можно решить? Любые идеи.