Для тех, кто пытается решить ту же проблему и ищет предложения, я остановился на winston.js , который предоставляет типы для машинописи.
Я определил логгер так:
const logger: winston.Logger = winston.createLogger({
level: 'debug',
format: winston.format.combine(
winston.format.simple(),
winston.format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
),
transports: [
new winston.transports.File({
level: 'info',
dirname: logFileDir,
filename: logFileName
}),
new winston.transports.File({
level: 'debug',
dirname: logFileDir,
filename: debugLogFileName
}),
]
});
export logger;
И затем я могу вызвать logger.info("whatever")
из другого места в моем коде и сделать так, чтобы он записывал в указанные файлы журнала.
Вы также можете записать журналы в консоль, добавив транспорт Console
, но будьте осторожны с этой ошибкой , которая не позволяет журналам отображаться в "консоли отладки" VSCode. Этот обходной путь решил эту проблему для меня.